我正在開發一個Android應用程序,該應用程序使用在線服務,我需要加載我的片段。基本上,我有一個菜單,每個按鈕替換下面的碎片。當我點擊一個按鈕時,片段開始被替換,如果我同時按下了鍵盤上的另一個按鈕,我得到「應用程序不響應」對話框,然後單擊「等待」,併成功加載我的片段。有沒有辦法阻止這種情況發生?由於Web服務,我的應用程序總是需要幾秒鐘才能加載。我在Google上讀到,我可以使用AsyncTask,並在DoOnBackground方法上完成加載。我不知道這是否有效,但我甚至無法嘗試,因爲它不會讓我改變視圖,它會拋出一個關於只有原始線程可以改變視圖的錯誤..我需要服務來完成加載我的視圖,所以我甚至不能用AsyncTask做這個服務。我現在已經沒有想法了!必須有辦法做到這一點..我欣賞建議!如何避免ANR對話框應用程序未響應
1
A
回答
11
有沒有辦法阻止這種情況發生?
是的:不要花太長的時間在主應用程序線程上。使用StrictMode
來識別可能的罪魁禍首(磁盤I/O,網絡I/O),並使用Traceview找出你正在做的事情,可能需要很長時間。
由於Web服務的原因,我的應用程序總是需要幾秒鐘才能加載。
這應該在後臺線程中完成。
我讀谷歌,我可以使用的AsyncTask,並完成對DoOnBackground方法加載..我不知道是否可行,但我不能去嘗試,因爲它不會讓我改變看法有,它拋出一個錯誤大約只有原來的線程可以改變看法
這就是爲什麼你更新從onPostExecute()
方法的意見,如the documentation for AsyncTask
描述。
0
您必須對AsyncTask的onPostExecute()函數中的ui進行更改。
0
絕不要在主幹上下文中執行數據庫操作或內容提供者操作。遲早你會遇到應用程序不響應錯誤。 ANR不是一個好的做法。
相關問題
- 1. 如何避免顯示「應用程序不響應」對話框
- 2. 如何避免「應用程序Android鍵盤未響應」消息?
- 3. 長時間運行ProgressDialog顯示應用程序沒有響應(ANR)對話框
- 4. 更改ANR(應用程序無響應)對話框(Android)的自定義對話框
- 5. 在我的android應用程序中的ANR對話框
- 6. 應用程序未響應(ANR)執行服務com.onesignal.SyncService
- 7. 發送對話框響應與對話框對話框響應
- 8. 響應進程對話框
- 9. ANR應用程序
- 10. 避免針對Web應用程序的會話劫持
- 11. Soomla - 應用程序沒有響應,而購買對話框
- 12. 如何避免Web應用程序框架的衝突
- 13. Android。使用HttpClient避免ANR
- 14. 如何在地圖集成應用程序中使用處理程序線程時避免Android ANR?
- 15. 應用MediaRecorder程序ANR
- 16. 如何避免應用程序沒有響應而網絡在android
- 17. 如何在Android中自定義ANR對話框而不是android ANR對話框
- 18. 如何避免WebException for 403 Forbidden響應?
- 19. 如何處理AppleScript對話框響應?
- 20. 避免應用程序[過程]
- 21. Firefox避免緩存響應?
- 22. 如何避免在Android中發生ANR?
- 23. 如何避免POST請求響應未知事件代碼
- 24. 避免重新啓動應用程序
- 25. 避免再次啓動應用程序
- 26. 避免UIWebView加載iTunes應用程序
- 27. ExeShield與.Net對話框應用程序
- 28. Android安裝應用程序對話框
- 29. Android對話框崩潰應用程序
- 30. 單個對話框應用程序
好的,謝謝!我會嘗試 – ximena
你應該接受這個答案! – 2012-11-09 14:53:56
是的,我會盡快:),只要它讓我 – ximena