关于同步加载和异步加载

来源:互联网 发布:张大奕开了几个淘宝店 编辑:程序博客网 时间:2024/04/29 01:47

1.同步针对于处理信息量很小的情况,也就是说如果不需要花费什么时间就能马上显示,例如本地的字符串处理。那如果是非常耗时的处理,例如下载、处理图片、大计算等,那么肯定需要异步加载,加载完成后同步显示到列表中;

2.java中有同步的概念,Android中目前没有同步加载数据这种做法,Android中一般都是异步加载,操作一些网络数据,加载大图片等耗时的操作,必须要异步加载,就是另开一个线程,不要在主线程有耗时操作,要不会发生ANR.

如以下代码:

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

    @Override

    protected void onPreExecute() {

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

    }

    @Override

    protected Response doInBackground(String... params) {

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

    }

    @Override

    protected void onPostExecute(Response result) {

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

    }

}

另一个例子,点击按钮执行HTTP请求然后跳转下一页:

同步:发送http请求→获取返回结果→分析结果→跳转下一页

异步:发送http请求→跳转下一页(不需要等待请求结果,对结果的处理在另一个线程中)

注:若是的同步的话会卡死ui界面,所以在Android4.1以后不允许使用同步请求了。

1 0
原创粉丝点击