应用的响应性(Responsive)
来源:互联网 发布:网络语雪梨是什么意思 编辑:程序博客网 时间:2024/06/05 21:53
一
在Android中,应用的响应性被活动管理器(Activity Manager)
和窗口管理器(Window Manager)这两个系统服务所监视。当用户触发了输入事件(如键盘输入,点击按钮等),
如果应用5秒内没有响应用户的输入事件,那么,Android会认
为该应用无响应,便弹出ANR(Application No Response)
对话框。
在正常情况下,Android程序会在一条单线程里运行。如果Activity要处理一件比较耗时的工作,应该交给子线程完成,否侧会因为主线程被阻塞,后面的用户输入事件因没能在5秒内响应,导致应用出现ANR对话框。
二
在Android中,程序的响应(Responsive)被活动管理器(Activity Manager)和窗口管理器(Window Manager)这两个系统服务所监视。当BroadcastReceiver在10秒内没有执行完毕,Android会认为该程序无响应。所以在BroadcastReceiver里不能做一些比较耗时的操作,否侧会弹出ANR(Application No Response)的对话框。如果需要完成一项比较耗时的工作,应该通过发送Intent给Service,由Service来完成。而不是使用子线程的方法来解决,因为BroadcastReceiver的生命周期很短(在onReceive() 执行后BroadcastReceiver 的实例就会被销毁),子线程可能还没有结束它就先结束了。当然如果BroadcastReceiver结束了,它的宿主进程还在运行,子线程还会继续执行。但宿主进程此时很容易在系统需要内存时被优先杀死,因为它属于空进程(没有任何活动组件的进程)。
public class IncomingSMSReceiver extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) {
//发送Intent启动服务,由服务来完成比较耗时的操作
Intent service = new Intent(context, XxxService.class);
context.startService(service);
}
}
每次广播消息到来时都会创建BroadcastReceiver实例并执行onReceive() 方法。
- 应用的响应性(Responsive)
- 应用的响应性(Responsive)
- 7-3 系统繁忙时的响应(Staying Responsive During Intensive Processing)
- 系统繁忙时的响应(Staying Responsive During Intensive Processing)
- 响应式设计(responsive web design)的视图显示法
- Responsive-Images响应式图片插件的工作原理
- 自适应响应式网页设计(Responsive Web Design)
- Responsive响应式布局设计
- 分享响应式设计(responsive design)的超强手册参考:工具,教程和实例
- 分享一个纯CSS3的响应式(responsive layout)幻灯设计
- 帮助开发者快速创建响应式布局的Boilerplate - Responsive Boilerplate
- Bootstrap使用响应式设计(Responsive design)时导航条上部有空白的解决方案
- css3学习笔记(六)----Media Queries(媒体样式) 与Responsive(响应式)
- 响应式设计(Responsive Design)【采用媒体查询(Media Queries)方式】
- 响应式布局( responsive design)和自适应设计(adaptive design)
- 热门:响应图片(Responsive Images)技术简介
- 响应式网页设计-responsive web design
- 响应式布局(Responsive Web Design)
- TCP/IP完整的基础介绍
- msdn zhongwen
- linux用户管理
- 微博使用心得
- socket编程-c代码
- 应用的响应性(Responsive)
- dom方式解析xml
- Flash: Flash动态文本框内动态文本内容自适应 - 我正要找的一个组件
- Android 创建 透明Activity
- js 验证日期
- iphone 自定义控件
- Android平台和java平台 DES加密解密互通程序及其不能互通的原因
- 汇编学习
- mysql inet_aton的“陷阱”