android中listview的数据的同步与异步加载有什么区别,效果有什么不同?
简单地说,就是:1.什么情况下用数据同步加载2.什么情况下用数据异步加载如果方便的话,简单的说说分别怎么用?说得好追加分...
简单地说,就是:1.什么情况下用数据同步加载
2.什么情况下用数据异步加载
如果方便的话,简单的说说分别怎么用?
说得好追加分 展开
2.什么情况下用数据异步加载
如果方便的话,简单的说说分别怎么用?
说得好追加分 展开
3个回答
展开全部
目前没有同步加载数据这种做法,如果网络延迟主界面UI就卡死了,
之后用户不耐烦就只能强行关闭了,卡死的时候按键都没反应的。
一个简单的的多线程
class updatelocationTask extends AsyncTask<String, Integer, Response> {
protected void onPreExecute() {
//这里写执行doInBackground方法之前要做的什么,比如说弹出ProgressDialog
}
}
@Override
protected Response doInBackground(String... params) {
//这里就是线程里面的方法了,比如说建立连接,请求数据
}
}
protected void onPostExecute(Response result) {
//这里可以根据返回值来确定怎么操作,比如说刷新列表或者提示用户网络不畅,是否再次刷新
}
}
}
}
之后用户不耐烦就只能强行关闭了,卡死的时候按键都没反应的。
一个简单的的多线程
class updatelocationTask extends AsyncTask<String, Integer, Response> {
protected void onPreExecute() {
//这里写执行doInBackground方法之前要做的什么,比如说弹出ProgressDialog
}
}
@Override
protected Response doInBackground(String... params) {
//这里就是线程里面的方法了,比如说建立连接,请求数据
}
}
protected void onPostExecute(Response result) {
//这里可以根据返回值来确定怎么操作,比如说刷新列表或者提示用户网络不畅,是否再次刷新
}
}
}
}
追问
那怎样让异步加载的数据,比如图片和文字,同时显示在listview出现,而不是先出现文字隔了好久图片才出来,是不是要用ViewHolder暂时缓存一下
追答
图片的话应该是异步任务里面再去起一个callback加载
列表的文字信息第一次就拿全了,然后把图片id加载到callbakc当中进行加载
同时显示很简单啊,你在adapter的fillview方法里面做判断啊,如果图片下载好了就显示信息和文字,不然就都不要显示。。。
2013-03-19
展开全部
java中有同步的概念,android中一般都是异步加载,操作一些网络数据,加载大图片等耗时的操作,必须要异步加载,就是另开一个线程,不要在主线程有耗时操作,要不会发生ANR;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你知道ajax就懂其中的原理了,同步针对于处理信息量很小的情况,也就是说如果不需要花费什么时间就能马上显示,例如本地的字符串处理。那如果是非常耗时的处理,例如下载、处理图片、大计算等,那么肯定需要异步加载,加载完成后同步显示到列表中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询