[英]Can I use loader to update listadapter data
嗨,我可以使用Loader(api支持程序包v4)更新listAdapter数据,我将在后台从另一个线程更改它。 这样做是安全的还是使用asyncTask更好? 我想要做的是拥有一个listAdapter,当我按下loadMoreData时,它将在列表中加载更多内容并更新列表,我正在从Internet检索内容,因此无法在UI Thread上运行,因此我正在对其进行更改在背景中。
内容存储在一个类的Hashmap中,我使用后台线程对其进行更新。
我以前为此目的使用asynctask,但是如果更好,我想更新代码以使用加载程序。
这不能回答您的问题,但是我建议您只在ListView Activity中创建一个Handler
,然后将更新传递给该处理程序(通过对Activity的方法调用)。
public class StuffActivity extends Activity {
ListView mLister;
Handler mHander;
ArrayList<String> mStuff = new ArrayList<String>();
@Override public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// Init widgets and ListView
mHandler = new Handler() {
@Override public void handleMessage(Message msg) {
if (msg != null && msg.obj != null) {
if (msg.obj instanceOf String)
mStuff.add(msg.obg);
}
updateListView();
}
}
}
public void updateList(String msg) {
mHandler.dispatchMessage(new Message(0, msg));
}
private void updateListView() {
// ...
}
}
如果使用加载程序,则在更新数据后,可能要在主线程上使用诸如getLoaderManager()。getLoader(YOUR_LOADER_ID).onContentChanged()之类的东西;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.