-
1 # 曾哥說事
-
2 # 夢裡南柯X8
ANR,是“Application Not Responding”的縮寫,即“應用程式無響應”。在Android中,ActivityManagerService(簡稱AMS)和WindowManagerService(簡稱WMS)會監測應用程式的響應時間,如果應用程式主執行緒(即UI執行緒)在超時時間內對輸入事件沒有處理完畢,或者對特定操作沒有執行完畢,就會出現ANR。對於輸入事件沒有處理完畢產生的ANR,Android會顯示一個對話方塊,提示使用者當前應用程式沒有響應,
使用者可以選擇繼續等待或者關閉這個應用程式(也就是殺掉這個應用程式的程序)。
產生ANR的原因
ANR的產生需要同時滿足三個條件:
主執行緒:只有應用程式程序的主執行緒響應超時才會產生ANR;
超時時間:產生ANR的上下文不同,超時時間也會不同,但只要在這個時間上限內沒有響應就會ANR;
輸入事件/特定操作:輸入事件是指按鍵、觸屏等裝置輸入事件,特定操作是指BroadcastReceiver和Service的生命週期中的各個函式。
產生ANR的上下文不同,導致ANR的原因也會不同;
其實很多情況下產生ANR,是系統卡頓導致的手機超時,app程式等待超時。如果需要找到根本原因,一般非常困難,但是我們可以考慮一些規避的方法。
手機一般發生anr都會跑到frameworks/base / services/core/java/com/android/server/am/AppErrors.java函式中,一般anr有幾種表現形式,一個是靜默ANR,現象是手機應用一直停在
一個介面,類似假死狀態,另外一種情況是有彈出對話方塊,顯示應用程式無反應,但是有些程式發現的anr一個是後臺程序,對使用者體驗不太好,可以做一些最佳化。
以上是從程式設計師的角度來分析的,總的來說,通常是軟體設計有bug,或者app最佳化不夠好,但對於我們一般使用者是沒有任何幫助的。我們能做的,可以從以下幾個方面入手:
1、如果你覺得剛剛的操作很重要(例如輸入了較多的文字等),你可以選擇等待,但超過30秒還是沒響應,那麼,很悲催,再等待也是無用的,只能選擇關閉了。可以清理一下手機記憶體和垃圾再試試。
2、如果是單個程式出現無相應,使用者可以下載程式,然後更換應用商店重新下載安裝試一下。
3、如果是多款軟體出現此種情況,就可能是由於系統異
回覆列表
跟據你這個問題,我覺得
原因如下:
1、網路不穩定,網速較差,因此原件沒辦法響應;
2、當前淘寶版本過低,
3、手機執行記憶體過小,後臺執行軟體太多,cpu佔用率過高,手機卡;
4、手機當前版本過老,沒有辦法支援淘寶執行;
擴充套件資料
建議從以下方面入手嘗試:
1、檢查手機網路連線是否穩定,建議更換無線網路嘗試。
2、更新軟體版本嘗試。
3、重置應用程式:設定-應用程式管理器/應用程式-更多-重置應用程式。
4、將資料備份(聯絡人,簡訊,圖片等),恢復出廠設定重新安裝嘗試。
5、更新下手機系統版本。
6、手機開關機之後再試。
舉個例子
彈出的提示為:手機QQ軟體無響應,讓使用者選擇是等待程式響應還是強行關閉程序。
造成的主要原因為,後臺執行軟體過多或手機配置較低(這種情況一般是執行記憶體不足造成的。先關閉其他軟體,稍後再開啟。
),此時開啟QQ程式時,對手機資源佔用較大,造成手機假死,觸發提醒。這時一般選擇等待,即可進入QQ程式。
可以關閉一些後臺執行的程式,減少手機系統資源佔用,可以減少這種提示機率。