Android系统规定,一些耗时的操作不能放在UI线程中去执行,这样会报一个ANR错误。所以为了避免该问题,我们需要开启一个新的线程去执行一些耗时操作;开启新的线程,将耗时的操作在新线程里面去执行, 但是子线程中不能更新UI界面,所以我们使用android的Handler机制可以解决这个问题。详细解...
分类:
移动开发 时间:
2014-11-09 20:40:31
阅读次数:
363
Android自动化测试 :Top-Down的要点概括
一、测试方法
1、功能型测试 monkeyrunner、uiautomator
2、随机事件 monkey
二、发现问题
3、监测内存是否有泄露 工具
4、监测是否有ANR 日志 (/data/anr)
5、监测是否有Crash 日志(/data/system/drop...
分类:
移动开发 时间:
2014-10-30 00:19:09
阅读次数:
229
最近发现某种情况下,在android 2.x上的Dialog对话框无法被dismiss,只要弹出来界面就卡死,强行使用eclipse重新run的话会导致android设备黑屏无响应,如果是模拟器,则直接崩溃,看到启动画面.而且这个还不是ANR错误....
分类:
移动开发 时间:
2014-10-28 12:22:28
阅读次数:
156
android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Application Not Responding)对话框的情况。对于这种情况,一般的方法就是耗时操作用线程来实现。下面列三种获取url图片的方法: 1.直接获取:(容易:ANR,不建议) mImageV...
分类:
移动开发 时间:
2014-10-27 10:33:39
阅读次数:
189
在上篇文章中我们知道了,Service其实是运行在主线程里的,如果直接在Service中处理一些耗时的逻辑,就会导致程序ANR。让我们来做个实验验证一下吧,修改上一篇文章中创建的ServiceTest项目,在MyService的onCreate()方法中让线程睡眠60秒,如下所示:[java] vi...
分类:
移动开发 时间:
2014-10-16 18:11:03
阅读次数:
188
我们知道,Android系统为了提高程序的实时响应能力,不允许在UI线程中进行耗时的操作,否则会出现ANR异常,因此必须将耗时的任务放到非UI线程中执行。Android/Java提供了很多类来帮助大家完成异步操作,比如:Thread类,Timer类,AsyncTask类,HandlerThread类,以及Executor接..
分类:
移动开发 时间:
2014-10-15 04:28:00
阅读次数:
360
Android中有些比较耗时的东西不能放在UI线程里面,因为当时间超过一段时间(大概5秒),就会出现ANR(Application No Response)错误。所以一些比较耗时的操作,例如联网或者读取一个比较大的文件里面的内容的时候这样才能出现错误。当然,还有其他的规定,Android中对控件的更...
分类:
移动开发 时间:
2014-10-06 14:00:10
阅读次数:
198
之前的项目里要做一个异步更新UI的功能,但是结果出现了ANR,所以想写个demo来测试到底是哪个地方出现了问题,结果发现原来的思路是没有问题,郁闷~~
现在这个demo 就是模拟项目里面 的步骤
1、接收到系统的广播(现在模拟为人工发送)
2、广播接收到后,handler通知异步线程从网上下载数据,是异步(模拟为sleep)
3、数据下载完后handler再通知UI更新
下面是主...
分类:
移动开发 时间:
2014-09-28 16:32:32
阅读次数:
250
什么时候会产生log文件?1. 程序异常退出 Uncaused Exception。2. 程序强制关闭 Force Closed(FC)。3. 程序无响应 Application No Response(ANR)。何时会产生ANR?1. 界面操作(比如按钮点击事件)等待相应时间超过5秒。2. Han...
分类:
移动开发 时间:
2014-09-24 22:08:27
阅读次数:
222
ANR(Application Not Responding) Android系统中应用无响应是Android系统中比较常见的问题,当出现ANR时一般情况会弹出一个带有以下文字的对话框提示:Activity XXX(in XXXXX) is not responding. 比如:粗略的来分会有两种情...
分类:
移动开发 时间:
2014-09-21 23:33:01
阅读次数:
265