Android下,对于耗时的操作要放到子线程中,要不然会残生ANR,本次我们就来学习一下Android多线程更新UI的方式。 首先我们来认识一下anr: anr:application not reponse:应用程序无响应 主线程:UI线程 anr产生的原因:主线程需要做很多重要的事情...
分类:
移动开发 时间:
2014-09-13 10:36:54
阅读次数:
267
ANRs (“Application Not Responding”),意思是”应用没有响应“。在如下情况下,Android会报出ANR错误:– 主线程 (“事件处理线程” / “UI线程”) 在5秒内没有响应输入事件– BroadcastReceiver 没有在10秒内完成返回通常情况下,下面这些...
分类:
移动开发 时间:
2014-09-06 01:01:22
阅读次数:
264
本文由PurpleSword(jzj1993)原创,转载请注明
原文网址 http://blog.csdn.net/jzj1993
安卓主线程(UI线程)是线程不安全的:对UI控件的操作都应在主线程中完成;UI线程不应执行耗时操作,以免程序不响应(即ANR异常)
实现新线程的常用方法(注意要调用start方法启动新线程而不是run方法):
...
分类:
移动开发 时间:
2014-09-04 22:20:50
阅读次数:
254
在Android中,Service是运行在主线程中的,如果在Service中处理一些耗时的操作,就会导致程序出现ANR.但如果将本地的Service转换成一个远程的Service,就不会出现这样的问题了.转换成远程Service非常简单,只需要在注册Service的时候将他的android:proc...
分类:
移动开发 时间:
2014-09-03 23:57:07
阅读次数:
646
getView().findViewById(R.id.iv_tip_update).setVisibility(View.VISIBLE);
以前报空指针
修改后
if(getView()!=null&&getView().findViewById(R.id.iv_tip_update)!=null)
{
getView().findViewById(R...
分类:
移动开发 时间:
2014-09-02 15:55:33
阅读次数:
209
如何调试分析Android中发生的tombstone Android中较容易出现以下三类问题:Force close / ANR / Tombstone 前两者主要是查看当前的进程或者系统框架层的状态和堆栈就基本可以分析出来,本文主要讨论一下tombstone...
分类:
移动开发 时间:
2014-08-04 18:29:08
阅读次数:
206
1. 什么是ANR? ANR(Application Not Responding)即应用程序无响应。 2. ANR产生的原因是什么? ANR产生的根本原因是APP阻塞了UI线程。在android系统中每个App只有一个UI线程,是在App创建时默认生成的,UI线程默认初始化了一个消息循环来处理UI...
分类:
其他好文 时间:
2014-07-24 22:51:43
阅读次数:
1406
首先我想强调一点,这个登陆的模块最好是放在另外一个线程里面来实现,否则有可能会爆出一系列的问题,
然后再与主UI 交互。这样就不会爆ANR异常
1.对于登陆模块的,首先大体的逻辑肯定是要清晰的。
//在这个登陆另起的线程中
//第一步首先要判断 是否有网络存在
...
分类:
移动开发 时间:
2014-07-21 22:11:38
阅读次数:
226
在Activity或者组件之前传递信息时,一般采用intent绑定bundle的方式传值,但在使用过程中需要注意的是不要用bundle传递大容量数据:
在做项目的过程中,需要将听写界面的听写结果信息传递到听写记录界面供显示用,但是由于传递的数据量过大导致程序ANR,甚至直接报异常(传递的信息里面有bitmap转换成的byte数组、每一个词组的拼音、词语、语音信息),经过分析发现是由...
分类:
移动开发 时间:
2014-07-18 14:05:30
阅读次数:
273
一、耗时操作 1.什么是ANR 在应用程序的主线程中执行一段耗时的代码, 就有可能出现ANR异常. 耗时的代码未执行结束时, 界面会卡住, 用户对界面进行了操作, 10秒之后耗时代码如果还未结束, 就会出现ANR异常 2.怎么避免ANR 主线程中不要执行耗时的代码 如果一...
分类:
移动开发 时间:
2014-07-13 19:15:12
阅读次数:
322