Trong log logcat android của tôi, tôi thấy:xử lý Tại sao android ứng dụng trong ANR khi nó đang ở trong looper chờ
01-02 02:01:46.523 E/ActivityManager( 459): ANR in com.android.phone (com.android.phone/.InCallScreen)
Và sau đó khi tôi đi đến /data/anr/traces.txt, tôi thấy
Cmd line: com.android.phone
DALVIK THREADS:
(mutexes: tll=0 tsl=0 tscl=0 ghl=0)
"main" prio=5 tid=1 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x410f7508 self=0x40eeeb68
| sysTid=649 nice=0 sched=0/0 cgrp=apps handle=1075429168
| schedstat=(0 0 0) utm=1361 stm=314 core=1
#00 pc 0000dac0 /system/lib/libc.so (epoll_wait+12)
#01 pc 00014899 /system/lib/libutils.so (android::Looper::pollInner(int)+96)
#02 pc 00014b01 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+104)
#03 pc 00063aeb /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22)
#04 pc 0001df30 /system/lib/libdvm.so (dvmPlatformInvoke+112)
#05 pc 0004d1fb /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+394)
#06 pc 00038f4d /system/lib/libdvm.so (dvmCheckCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+8)
#07 pc 00000214 /dev/ashmem/dalvik-jit-code-cache (deleted)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:125)
at android.os.Looper.loop(Looper.java:124)
at android.app.ActivityThread.main(ActivityThread.java:4921)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
at dalvik.system.NativeStart.main(Native Method)
Câu hỏi của tôi là lý do khiến android cho rằng ứng dụng nằm trong ANR khi theo dõi ngăn xếp hiển thị chuỗi chính trong Looper đang chờ tin nhắn? Điều đó có vẻ bình thường với tôi. Tôi hiểu android cho thấy ANR khi chủ đề chính đang tải xuống một cái gì đó/làm một hoạt động lâu dài. Nhưng có vẻ bình thường rằng nó đang chờ đợi một tin nhắn. Vui lòng cho tôi biết nếu tôi sai.