0

我有一點問題,我現在花了很多時間。我希望你能幫助我。 那麼,我有一個活動在後臺加載數據庫內容。它返回異步並修改我的數據模型。現在我正在尋找一種通知控制器更新視圖的好方法。我使用notifyDataChanged方法,但我得到一個異常。異步視圖操作android

的Android不允許修改從另一個線程的視圖。在我看來這是一個基本的功能。所以必須有一種方法來實現這樣的功能。

你能不能給我一個提示。

我也在觀看內容觀察員班。但我不認爲這是正確的。

感謝

回答

0

請提供一些代碼片段從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() –