异步视图操作android

异步视图操作android

问题描述:

我有一点问题,我现在花了很多时间。我希望你能帮助我。 那么,我有一个活动在后台加载数据库内容。它返回异步并修改我的数据模型。现在我正在寻找一种通知控制器更新视图的好方法。我使用notifyDataChanged方法,但我得到一个异常。异步视图操作android

的Android不允许修改从另一个线程的视图。在我看来这是一个基本的功能。所以必须有一种方法来实现这样的功能。

你能不能给我一个提示。

我也在观看内容观察员班。但我不认为这是正确的。

感谢

请提供一些代码片段从Activity。如果您使用AsynkTask这是对数据进行后台处理的最佳方式,则应使用onPostExecute()方法更新您的用户界面,因为doInBackground()在后台线程上运行,而不是在UIThread上运行。

一个解决办法是宣布在您的Activity一个Handler,并张贴在HandlerRunnable,当你想acccess的UI,像这样:

mHandler.post(new Runnable() { 
     @Override 
     public void run() { 
      mAdapter.notifyDataSetChanged(); 
     } 
    }); 

但是,这是莫名其妙地“黑客”我不会推荐使用这个。最好的办法是使用AsyncTask

+0

谢谢!在我看来很好。直到现在我还不知道这个类...... –

+0

这可以触发IllegalStateException {},您需要runOnUIThread() –