异步视图操作android
问题描述:
我有一点问题,我现在花了很多时间。我希望你能帮助我。 那么,我有一个活动在后台加载数据库内容。它返回异步并修改我的数据模型。现在我正在寻找一种通知控制器更新视图的好方法。我使用notifyDataChanged方法,但我得到一个异常。异步视图操作android
的Android不允许修改从另一个线程的视图。在我看来这是一个基本的功能。所以必须有一种方法来实现这样的功能。
你能不能给我一个提示。
我也在观看内容观察员班。但我不认为这是正确的。
感谢
答
请提供一些代码片段从Activity
。如果您使用AsynkTask
这是对数据进行后台处理的最佳方式,则应使用onPostExecute()
方法更新您的用户界面,因为doInBackground()
在后台线程上运行,而不是在UIThread上运行。
一个解决办法是宣布在您的Activity
一个Handler
,并张贴在Handler
新Runnable
,当你想acccess的UI,像这样:
mHandler.post(new Runnable() {
@Override
public void run() {
mAdapter.notifyDataSetChanged();
}
});
但是,这是莫名其妙地“黑客”我不会推荐使用这个。最好的办法是使用AsyncTask
。
谢谢!在我看来很好。直到现在我还不知道这个类...... –
这可以触发IllegalStateException {},您需要runOnUIThread() –