У меня есть следующий ANR после ввода и выхода (несколько раз) экрана, который использует AsyncTask для загрузки некоторых данных.ANR в removeMessages и enqueueMessage
Полный ANR здесь: http://pastebin.com/g1MDv44Q
Несколько наблюдений:
- Мое имя пакета не появляется в любом месте на штабеля
- "Основной" нить SUSPENDED
- Там много потоков в WAIT, это число увеличивается каждый раз и вводить/выходить на экран
Я также заметил, что две ПОДВЕСНЫЕ нити, кажется, в какой-то тупик или бесконечный цикл, один «удаление сообщения» и другие «enqueueing сообщения»:
"main" prio=5 tid=1 SUSPENDED
| group="main" sCount=1 dsCount=0 obj=0x415dce88 self=0x414fb898
| sysTid=9246 nice=-6 sched=0/0 cgrp=apps handle=1074143572
| state=S schedstat=(487768247094 88677560041 387007) utm=45537 stm=3239 core=3
at android.os.MessageQueue.removeMessages(MessageQueue.java:~472)
at android.os.Handler.removeCallbacks(Handler.java:479)
at android.view.View.removeCallbacks(View.java:11343)
at android.support.v7.widget.RecyclerView$ViewFlinger.stop(RecyclerView.java:3914)
at android.support.v7.widget.RecyclerView.stopScrollersInternal(RecyclerView.java:1641)
at android.support.v7.widget.RecyclerView.setScrollState(RecyclerView.java:1112)
at android.support.v7.widget.RecyclerView.cancelTouch(RecyclerView.java:2252)
at android.support.v7.widget.RecyclerView.onTouchEvent(RecyclerView.java:2237)
at android.view.View.dispatchTouchEvent(View.java:7837)
...
"Thread-28544" prio=4 tid=99 SUSPENDED
| group="main" sCount=1 dsCount=0 obj=0x451703d0 self=0x7bc9d658
| sysTid=13075 nice=10 sched=0/0 cgrp=apps handle=-2111467576
| state=S schedstat=(4705817143 4247615417 4666) utm=444 stm=26 core=3
at android.os.MessageQueue.enqueueMessage(MessageQueue.java:~359)
at android.os.Handler.enqueueMessage(Handler.java:626)
at android.os.Handler.sendMessageAtTime(Handler.java:595)
at android.os.Handler.sendMessageDelayed(Handler.java:566)
at android.os.Handler.sendEmptyMessageDelayed(Handler.java:530)
at android.os.Handler.sendEmptyMessage(Handler.java:515)
at com.android.org.chromium.base.SystemMessageHandler.setTimer(SystemMessageHandler.java:30)
at dalvik.system.NativeStart.run(Native Method)
Является ли этот анализ правильно?
Если да, то почему это происходит и как я могу его исправить или предотвратить?
Если нет, это правильный анализ для этого ANR?
какие-то шансы, что элемент каждого RecyclerView имеет в WebView? ... и у вас было много предметов? и загрузить URL-адрес в bindViewHolder? – Selvin
нет, нет веб-просмотров! – thiagolr
На самом деле это AdView от AdMob, он, вероятно, использует какой-то WebView на нем! – thiagolr