Android两种常见错误(ANR和FC)解决办法

ANR(Activity Not Respone)(无响应)

先介绍下Main线程(也称为UI线程、主线程)

功能: 1.创建UI控件

2.更新UI控件状态

3.事件处理

限制:Main线程不建议有超过5秒的事件

出现条件:

当用户输入事件5s内没有得到响应,将弹出ANR对话框

广播接收者的onReceive()执行时间超过10s

解决方案(原则):

所有可能的耗时操作都要在子线程()中执行

常见耗时操作:

I/O:网络操作

SDcard

数据运算

FC(Force close)

原因:

1.Error

OOM(out of memory error)

StackOverFlowError

2.RuntimeException

解决办法:

看日志

子线程不能更新UI的解决思路:

1、 将子线程执行结果发送到Main线程:handler+massage线程间通讯

发送消息:

Message msg = mHandler.obtainMessage(UPLOAD, json);

mHandler.sendMessage(msg);

接收消息:

public void handleMessage(Message msg) {

switch (msg.what) {

case UPLOAD:

mTextView2.setText((String) msg.obj);

break;

case DOWNLOAD:

mTextView.setText((String) msg.obj);

break;

default:

break;

}

}

2、 使更新ui代码段在Main线程执行:

1.runOnUiThread

2.view.post view.postDelay()

3.handler.post handler.postDelay()

参考:

http://www.cnblogs.com/mengdd/p/3418780.html

时间: 2024-08-24 10:56:21

Android两种常见错误(ANR和FC)解决办法的相关文章

java学习之数组的两种常见错误

连接上篇java探索之堆栈区分,启下对擦除的内在探索,可以了解掌握数组出错的两种方式 package com.dreamly.day01; /** * @author dreamly * */ public class ArrayTest01 { public static void main(String[] args) { int[] x=new int[3]; x=null;//擦除掉与实例对象的联系,即不保存地址值. System.out.println(x[0]); //NullPoi

几种常见的内存溢出与解决办法

引起内存溢出的原因有很多种,常见的有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 3.代码中存在死循环或循环产生过多重复的对象实体: 4.使用的第三方软件中的BUG: 5.启动参数内存值设定的过小: 1.堆 设置jvm值的方法是通过-Xms(堆的最小值),-Xmx(堆的最大值) 2.栈 设置栈大小的方法是设置-Xss参数 3.PermGen space 第三个异常是关于perm的异常内容,我们需要的是设

Android NDK开发常见错误

错误一: make: *** No rule to make target `/cygdrive/d/1-workspace/showmap-android-opengles/jni/showmap_opengles_OpenGLESRenderer.c', needed by `/cygdrive/d/1-workspace/showmap-android-opengles/obj/local/armeabi/objs/OpenGLESMap/showmap_opengles_OpenGLES

loadrunner的几种常见错误

转自网络 loadrunner的几种常见错误及解决办法1录:解决:.:在录制选项option-network-:2在回放脚本时出现的错误:Action.c(33)Error-35061:解决方法:可以用web_set_max_html:ParamName=Correlat:LB=c,:RB=n loadrunner的几种常见错误及解决办法 1录制loadrunner脚本时,无法生成脚本,录制过程中事物都有显示,我把所有防火墙和网络保护都关了,但是脚本就是无法生成,协议之类的都是对的. 解决:.

头疼的CSS3动画,6种常见错误

本篇文章总结在CSS3动画上遇到的问题,6种常见错误,以及解决方案.愿每一位前端开发者在后来都能躲过这些坑! 常见错误:Animation篇 首先先来复习一下animation的有哪些属性: 属性名 默认 作用 animation-name none keyframe 的名字 animation-duration 0s 运行总时长 animation-timing-function ease 运行的速度变化,总不可能总是匀速吧 animation-delay 0s 延迟时间 animation-

Android Studio 新手常见错误:Gradle DSL method not found: 'runProguard()'

在Android Studio上执行Github上的某Android开源项目,提示报错: Error:(20, 0) Gradle DSL method not found: 'runProguard()' 请教度娘后.须要将app下的build.gradle文件里: buildTypes { release { runProguard false // 已经被废弃而且停止使用了 //...... } } 替换为例如以下就可以: buildTypes { release { minifyEnab

Android两种旋转Bitmap方法比较

方法1. 利用Bitmap.createBitmap Bitmap adjustPhotoRotation(Bitmap bm, final int orientationDegree) { Matrix m = new Matrix(); m.setRotate(orientationDegree, ( float ) bm.getWidth() / 2, ( float ) bm.getHeight() / 2); try { Bitmap bm1 = Bitmap.createBitmap

[002] 两种常见的代码组织结构

1. 按照应用程序的业务逻辑来组织结构 办公软件: 1. 采购 com.itheima.buy 2. 开会 com.itheima.meeting 3. 请假 com.itheima.leave 2. 根据与代码的类型划分程序包结构 UI界面展现         com.itheima.mobilesafe.activity 自定义的UI         com.itheima.mobilesafe.activity.ui 业务逻辑             com.itheima.mobiles

移动站Web开发图片自适应两种常见情况解决方案

本文主要说的是Web中图片根据手机屏幕大小自适应居中显示,图片自适应两种常见情况解决方案.开始吧 在做配合手机客户端的Web wap页面时,发现文章对图片显示的需求有两种特别重要的情况,一是对于图集,这种文章只需要左右滑动浏览,最好的体验是让图片缩放显示在屏幕有效范围内,防止图片太大导致用户需要滑动手指移动图片来查看这种费力气的事情,用户体验大大降低.二是图文混排的文章,图片最大宽度不超过屏幕宽度,高度可以auto.这两种情况在项目中很常见.另外,有人说做个图片切割工具,把图片尺寸比例都设定为统