android - ANR keyDispatchingTimedOut 错误

标签 android android-anr-dialog

当我尝试使用 DOM 解析 RSS 时,我在我的应用程序中遇到此强制关闭错误。但这并不总是强制关闭问题...这是 logcat:

**ANR keyDispatchingTimedOut**

DALVIK THREADS:
"main" prio=5 tid=1 NATIVE
  | group="main" sCount=1 dsCount=0 s=N obj=0x40025b50 self=0xcdb8
  | sysTid=2504 nice=0 sched=0/0 cgrp=bg_non_interactive handle=-1345017804
  | schedstat=( 573577878 521301271 1476 )
  at org.apache.harmony.luni.platform.OSNetworkSystem.readSocketImpl(Native Method)
  at org.apache.harmony.luni.platform.OSNetworkSystem.read(OSNetworkSystem.java:358)
  at org.apache.harmony.luni.net.PlainSocketImpl.read(PlainSocketImpl.java:561)
  at org.apache.harmony.luni.net.SocketInputStream.read(SocketInputStream.java:88)
  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl$ChunkedInputStream.read(HttpURLConnectionImpl.java:458)
  at java.io.InputStreamReader.read(InputStreamReader.java:275)
  at org.kxml2.io.KXmlParser.peek(KXmlParser.java:931)
  at org.kxml2.io.KXmlParser.pushText(KXmlParser.java:881)
  at org.kxml2.io.KXmlParser.nextImpl(KXmlParser.java:354)
  at org.kxml2.io.KXmlParser.nextToken(KXmlParser.java:1406)
  at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:369)
  at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:362)
  at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:362)
  at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:362)
  at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:362)
  at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:135)
  at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:110)
  at kostas.menu.olympiakos.DomFeedParser.parse(DomFeedParser.java:26)
  at kostas.menu.olympiakos.nea.loadFeed(nea.java:51)
  at kostas.menu.olympiakos.nea.onCreate(nea.java:38)
  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1066)
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2799)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2866)
  at android.app.ActivityThread.access$2300(ActivityThread.java:140)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2181)
  at android.os.Handler.dispatchMessage(Handler.java:99)
  at android.os.Looper.loop(Looper.java:143)
  at android.app.ActivityThread.main(ActivityThread.java:5097)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:521)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
  at dalvik.system.NativeStart.main(Native Method)

"Binder Thread #2" prio=5 tid=6 NATIVE
  | group="main" sCount=1 dsCount=0 s=N obj=0x46eea810 self=0x135a00
  | sysTid=2509 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1213600
  | schedstat=( 10253904 21514895 127 )
  at dalvik.system.NativeStart.run(Native Method)

"Binder Thread #1" prio=5 tid=5 NATIVE
  | group="main" sCount=1 dsCount=0 s=N obj=0x46eea748 self=0x12cab0
  | sysTid=2508 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1301736
  | schedstat=( 12603756 119659428 129 )
  at dalvik.system.NativeStart.run(Native Method)

"Compiler" daemon prio=5 tid=4 VMWAIT
  | group="system" sCount=1 dsCount=0 s=N obj=0x46ee32a8 self=0x127bc8
  | sysTid=2507 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1300256
  | schedstat=( 197021496 268585180 1155 )
  at dalvik.system.NativeStart.run(Native Method)

"Signal Catcher" daemon prio=5 tid=3 RUNNABLE
  | group="system" sCount=0 dsCount=0 s=N obj=0x46ee31e8 self=0xa8140
  | sysTid=2506 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1299816
  | schedstat=( 915528 5706786 7 )
  at dalvik.system.NativeStart.run(Native Method)

"HeapWorker" daemon prio=5 tid=2 VMWAIT
  | group="system" sCount=1 dsCount=0 s=N obj=0x45947800 self=0x1224b8
  | sysTid=2505 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1212984
  | schedstat=( 27404784 3082276 24 )
  at dalvik.system.NativeStart.run(Native Method)

最佳答案

ANR 错误

Activity 无响应。

您的 Activity 花了很长时间才对 Android 操作系统说“嘿,我还活着”! (这就是 UI 线程所做的)。

http://developer.android.com/guide/practices/design/responsiveness.html

基本上,如果您让 UI 线程执行一些复杂的任务,那么您的任务太忙了,无法告诉操作系统它仍然“活着”。

http://android-developers.blogspot.co.uk/2009/05/painless-threading.html

您应该将您的 XML Parsing 代码移动到另一个线程,然后使用回调告诉 UI 线程您已完成并对结果进行处理。

http://developer.android.com/resources/articles/timed-ui-updates.html

关于android - ANR keyDispatchingTimedOut 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5513457/

相关文章:

android - 在设备进入休眠状态后得到 AND (Android)

java - 虽然我使用 AsyncTask 但应用程序没有响应

android - 随机使用应用程序时出现 ANR

java - Android 应用程序在 Calender.getInstance 处没有响应

java - 传递可序列化对象还是再次查询数据库?

android - 具有不同颜色的标准 Android 按钮

android - Flutter:方法 'signInWithGoogle' 没有为类 'FirebaseAuth' 定义

AndroidX : No instrumentation registered! 必须在注册工具下运行

Android:调用 getExternalFilesDir(null) 时出现 ANR

Android ListView fastScrollThumbDrawable 不工作