Android ANR keyDispatchingTimedOut在屏幕上连续轻击时出错

我在屏幕上连续点击时正在获取应用程序不响应(ANR)对话框。 屏幕上没有我正在点击的视图。 这个问题的发生频率较低,但仍然无法完全消除。

在这里,我附上了我在这个错误中捕获的日志。

ERROR/ActivityManager(1322): ANR in com.test.mj.and.ui (com.test.mj.and.ui/.TermsAndCondActivity) ERROR/ActivityManager(1322): Reason: keyDispatchingTimedOut ERROR/ActivityManager(1322): Parent: com.test.mj.and.ui/.SplashActivity ERROR/ActivityManager(1322): Load: 6.59 / 6.37 / 5.21 ERROR/ActivityManager(1322): CPU usage from 11430ms to 2196ms ago: ERROR/ActivityManager(1322): rtal.mj.and.ui: 9% = 7% user + 1% kernel / faults: 649 minor ERROR/ActivityManager(1322): system_server: 4% = 2% user + 2% kernel / faults: 10 minor ERROR/ActivityManager(1322): logcat: 3% = 1% user + 1% kernel / faults: 675 minor 1 major ERROR/ActivityManager(1322): synaptics_wq: 1% = 0% user + 1% kernel ERROR/ActivityManager(1322): ami304d: 1% = 0% user + 0% kernel ERROR/ActivityManager(1322): .process.lghome: 1% = 0% user + 0% kernel / faults: 47 minor ERROR/ActivityManager(1322): sync_supers: 0% = 0% user + 0% kernel ERROR/ActivityManager(1322): droid.DunServer: 0% = 0% user + 0% kernel / faults: 6 minor ERROR/ActivityManager(1322): events/0: 0% = 0% user + 0% kernel ERROR/ActivityManager(1322): oid.inputmethod: 0% = 0% user + 0% kernel / faults: 2 minor ERROR/ActivityManager(1322): m.android.phone: 0% = 0% user + 0% kernel / faults: 2 minor ERROR/ActivityManager(1322): ndroid.settings: 0% = 0% user + 0% kernel ERROR/ActivityManager(1322): sh: 0% = 0% user + 0% kernel / faults: 110 minor ERROR/ActivityManager(1322): -flush-179:0: 0% = 0% user + 0% kernel ERROR/ActivityManager(1322): TOTAL: 19% = 13% user + 6% kernel WARN/WindowManager(1322): Continuing to wait for key to be dispatched WARN/WindowManager(1322): No window to dispatch pointer action 1 

任何人都可以请帮我解决这个问题?

提前致谢。

Solutions Collecting From Web of "Android ANR keyDispatchingTimedOut在屏幕上连续轻击时出错"

它通常发生在onClick处理程序中,执行一些耗时的活动,如从networking获取资源或计算复杂的事物。 使用单独的线程(UI线程),以便onclick处理程序可以返回和窗口pipe理器将继续。

http://developer.android.com/resources/articles/painless-threading.html

您可以使用Asynctask或postDelayed查看

正如前面的答案所述 :如果点击,触摸,键等事件阻塞了UI线程,则会发生这种情况。

有趣的是,同样的事情发生在我身上,这也是(非常)罕见的。 我的问题是基于浮点值的二进制search(无意和非常愚蠢;-)。 有时search标准不再改变,所以我得到了一个无限循环。

我的build议:如果你从来没有打算做大量的工作,可能会阻止UI线程,尝试search代码中的一个可能的无限循环。

100kb的数据限制从一个活动传递到另一个活动。 如果超出限制,则说明错误出现。

这里是http://demetrimiller.com/2010/11/09/android-binder-transaction-failed-error-message/

当我通过一个巨大的数组列表时,我得到了同样的错误。 这个数组列表,我从服务器上获取它。 所以试试这个。 可能会解决你的问题。

如果您正在进行资源密集型任务,那么可能会发生。 在恢复活动。

  • 尝试停止onPause的所有密集工作,然后在onResume上重新启动它。 如果您在活动制图叠加层上显示地图,则停止在睡眠时刷新叠加层,然后在onResume上刷新它。 使用线程进行密集型任务。