這可能是另一個問題的副本,我不確定。我已經閱讀過類似的問題,但要麼無法理解它,要麼無法成功應用給定的解決方案。如何在我的活動更改或銷燬時停止ASyncTask崩潰?
我創建了一個具有多個選項卡的應用程序。當用戶滑入選項卡時,大多數選項卡使用ASyncTask更新數據。但是,當AST仍在運行時(如發生很多情況,例如當用戶旋轉屏幕或使用後退按鈕退出時),有關活動的某些內容會發生變化,應用程序將強制關閉(ANR)。
下面是我在logcat中看到的情況:
10-30 11:30:01.422: E/AndroidRuntime(4687): FATAL EXCEPTION: main
10-30 11:30:01.422: E/AndroidRuntime(4687): java.lang.NullPointerException
10-30 11:30:01.422: E/AndroidRuntime(4687): at com.appconstructor.khcreates.Core$refreshList.onPostExecute(Core.java:913)
10-30 11:30:01.422: E/AndroidRuntime(4687): at com.appconstructor.khcreates.Core$refreshList.onPostExecute(Core.java:1)
10-30 11:30:01.422: E/AndroidRuntime(4687): at android.os.AsyncTask.finish(AsyncTask.java:631)
10-30 11:30:01.422: E/AndroidRuntime(4687): at android.os.AsyncTask.access$600(AsyncTask.java:177)
10-30 11:30:01.422: E/AndroidRuntime(4687): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
10-30 11:30:01.422: E/AndroidRuntime(4687): at android.os.Handler.dispatchMessage(Handler.java:99)
10-30 11:30:01.422: E/AndroidRuntime(4687): at android.os.Looper.loop(Looper.java:137)
10-30 11:30:01.422: E/AndroidRuntime(4687): at android.app.ActivityThread.main(ActivityThread.java:4745)
10-30 11:30:01.422: E/AndroidRuntime(4687): at java.lang.reflect.Method.invokeNative(Native Method)
10-30 11:30:01.422: E/AndroidRuntime(4687): at java.lang.reflect.Method.invoke(Method.java:511)
10-30 11:30:01.422: E/AndroidRuntime(4687): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-30 11:30:01.422: E/AndroidRuntime(4687): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-30 11:30:01.422: E/AndroidRuntime(4687): at dalvik.system.NativeStart.main(Native Method)
從我所看到的,的AsyncTask(refreshlist)不能處理的事實,有沒有申請留下來將更改應用於。
我想要做的是讓一個應用程序不強制關閉,如果沒有任何活動。
- 任我想要的AsyncTask停止,如果活動停止
- 或者我要申請只保留任務運行,但不會強制關閉(如:沒有任何反應onPostExecute()如果沒有連接活動。
如果有人需要我的onPostExecute()代碼來解決這個問題,讓我知道。
這已被竊聽我一會兒,我一直沒能解決這個我自己。我的應用程序的經驗是非常可怕的,這個bug已經到位elp會非常感謝!
在此先感謝!
儘管這樣做的確有竅門,但請參閱Nunu針對我的案例(片段)回答的答案。 –