android 异步加载有几种方法

android 异步加载有几种方法,第1张

线程没有控制并发数量,当并发过多的时候异步方法的作用就体现出来了。

异步是相对于同步而言的,顾名思义,同步就是各个通讯节点之间有统一的时钟,按照相同的时钟工作,异步相反,各节点之间没有统一的时钟,每个节点按照自己内部的时钟工作。

android在所有Thread当中,有一个Thread,我们称之为UI Thread。UI

Thread在Android程序运行的时候就被创建,是一个Process当中的主线程Main

Thread,主要是负责控制UI界面的显示、更新和控件交互。在Android程序创建之初,一个Process呈现的是单线程模型,所有的任务都在一个线程中运行。因此,我们认为,UI

Thread所执行的每一个函数,所花费的时间都应该是越短越好。而其他比较费时的工作(访问网络,下载数据,查询数据库等),都应该交由子线程去执行,以免阻塞主线程。

目前没有同步加载数据这种做法,如果网络延迟主界面UI就卡死了,

之后用户不耐烦就只能强行关闭了,卡死的时候按键都没反应的。

一个简单的的多线程

class updatelocationTask extends AsyncTask<String, Integer, Response>{

protected void onPreExecute() {

//这里写执行doInBackground方法之前要做的什么,比如说d出ProgressDialog

}

}

@Override

protected Response doInBackground(String... params) {

//这里就是线程里面的方法了,比如说建立连接,请求数据

}

}

protected void onPostExecute(Response result) {

//这里可以根据返回值来确定怎么 *** 作,比如说刷新列表或者提示用户网络不畅,是否再次刷新

}

}

}

}

在请求第二页及以后页数的时候带多一个参数,就是第一次请求到的数据的最后一条的id,当然服务端的每个数据都有id,id根据你的排序规律,排在前面的可以设置为大点的,最后面的为最小的。服务端根据请求过来id,就可以确认已经发送了此id之前的数据(包括id这条数据,id之前的数据有可能有新的数据插入,但是此时客户端需要的只是之后的数据,所以直接把id之后的10条数据发给客户端即可)。此外,如果客户端想获得新插入的数据,只要请求第一页就行了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6935883.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存