3 回答

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
我可能有解決方法。
也有同樣的問(wèn)題,在這里我加載大量項(xiàng)目(通過(guò)文件系統(tǒng))為L(zhǎng)istView通過(guò)AsyncTask。先onPreExecute()觸發(fā)a ProgressDialog,然后再通過(guò)onPostExecute()和onCancelled()調(diào)用(在通過(guò)顯式取消任務(wù)時(shí)調(diào)用AsyncTask.cancel())將其關(guān)閉.cancel()。
當(dāng)我使用的onCancelled()方法殺死對(duì)話框時(shí),出現(xiàn)了相同的“ java.lang.IllegalArgumentException:視圖未附加到窗口管理器”錯(cuò)誤AsyncTask(我在出色的Shelves應(yīng)用程序中看到了這一點(diǎn))。
解決方法是在中創(chuàng)建一個(gè)AsyncTask包含以下內(nèi)容的公共字段ProgressDialog:
public ProgressDialog mDialog;
然后,onDestroy()當(dāng)我取消自己的時(shí)AsyncTask,我還可以通過(guò)以下方法終止關(guān)聯(lián)的對(duì)話框:
AsyncTask.mDialog.cancel();
呼叫AsyncTask.cancel()DOES觸發(fā)onCancelled()的AsyncTask,但由于某些原因通過(guò)該方法被調(diào)用的時(shí)候,查看已經(jīng)被銷毀,因此撤銷對(duì)話框失敗。
- 3 回答
- 0 關(guān)注
- 441 瀏覽
添加回答
舉報(bào)