Android ANR keyDispatchingTimedOut Error 之 Painless Threading

最近在开发 Android 项目时,遇到了一个偶尔会出现的 Android ANR keyDispatchingTimedOut Error 错误,在网上搜索过后找到了一个相同问题的帖子,参见

http://stackoverflow.com/questions/4529770/android-anr-keydispatchingtimedout-error-while-continuous-tapping-on-screen,

该帖子遇到的问题正好是我遇到的问题,通读帖子的回答,发现是 Thread 方面的问题,转到 Android 开发官方文档,参见

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

读完官方文档后即发现了自己的错误所在。

原文如下:

Painless Threading

This article discusses the threading model used by Android applications and how applications can ensure best UI performance by spawning worker threads to handle long-running operations, rather than handling them in the main thread. The article also explains the API that your application can use to interact with Android UI toolkit components running on the main thread and spawn managed worker threads.

The UI thread

When an application is launched, the system creates a thread called"main" for the application. The main thread, also called theUIthread, is very important because it is in charge of dispatching theevents to the appropriate widgets, including drawing events.It is also the thread where your application interacts with running components of the Android UI toolkit.

For instance, if you touch the a button on screen, the UI thread dispatchesthe touch event to the widget, which in turn sets its pressed state andposts an invalidate request to the event queue. The UI thread dequeuesthe request and notifies the widget to redraw itself.

This single-thread model can yield poor performance unless your application is implemented properly. Specifically, if everything is happening in a single thread, performing long operations such as network access or databasequeries on the UI thread will block the whole user interface. No eventcan be

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值