0
前提條件:ANR在應用程序重啓期間
Android 4.0.3。
重現步驟:
打開應用程序,按返回鍵。
錯誤被轉載一次。
這個錯誤是一個android bug或我的應用程序。錯誤?
"InputDispatcher" prio=10 tid=31 TIMED_WAIT
| group="main" sCount=1 dsCount=0 obj=0x4165e6c0 self=0x23cfa8
| sysTid=1916 nice=-8 sched=0/0 cgrp=[no-cpu-subsys] handle=2017576
| schedstat=(22339660675 10841338980 166402) utm=1041 stm=1192 core=1
at java.lang.Object.wait(Native Method)
- waiting on <0x41f3e5d8> (a com.android.server.am.ActivityManagerService$4)
at java.lang.Object.wait(Object.java:401)
at com.android.server.am.ActivityManagerService.dumpStackTraces(ActivityManagerService.java:2980)
at com.android.server.am.ActivityManagerService.dumpStackTraces(ActivityManagerService.java:2958)
at com.android.server.am.ActivityManagerService.appNotResponding(ActivityManagerService.java:3195)
at com.android.server.am.ActivityRecord.keyDispatchingTimedOut(ActivityRecord.java:757)
at com.android.server.am.ActivityRecord$Token.keyDispatchingTimedOut(ActivityRecord.java:243)
at com.android.server.wm.InputMonitor.notifyANR(InputMonitor.java:108)
at com.android.server.wm.InputManager$Callbacks.notifyANR(InputManager.java:608)
at dalvik.system.NativeStart.run(Native Method)
不要檢查InputDispatcher線程,請檢查您的應用程序的主線程的堆棧。這就是ANR的實際原因。 – nandeesh 2012-08-07 13:08:33
當您在主線程上執行耗時操作時,通常會導致ANR,我們可以通過在後臺線程或Async上推送這些操作來避免它。這些操作通常都是基於網絡的。 – 2012-08-07 12:57:09