在Android应用开发中,偶尔会因为测试的不充分导致一些异常没有被捕获,这时应用会出现异常并强制关闭,这样会导致很不好的用户体验,为了解决这个问题,我们需要捕获相关的异常并做处理. 首先捕获程序崩溃的异常就必须了解一下Java中UncaughtExceptionHandler这个接口,这个接口在Android开发上面也是可以使用的,在API文档中,我们可以了解到:通过实现此接口,能够处理线程被一个无法捕获的异常所终止的情况.如上所述的情况,handler将会报告线程终止和不明原因异常这个情况,…
Android平台程序崩溃大家都应该遇到过,force close和ANR应该是大家遇到较多的. 这里把Android平台程序崩溃的各种类型做一个简述和原因列举. 1.ANR(可见ANR): 发生场景:应用发生ANR. 崩溃症状:系统弹出窗口询问用户选择“Force Close”或者“Wait”. “Force Close”将杀掉发生ANR的应用进程.“Wait”将会等待系统择机恢复此应用进程. 发生原因:(1)应用主线程卡住,对其他请求响应超时.(2)死锁.(3)系统反应迟钝.(4)CPU负载…
程序崩溃是应用迭代中不可避免的问题,即使有着5年或者10年经验的程序猿也无法完全保证自己的代码没有任何的bug导致崩溃,现在有一些第三方平台可以帮助我们搜集应用程序的崩溃,比如友盟,详情如下图 虽然能够看到崩溃的日志以及机型等,但还是不是很方便,如果需要精确定位的话需要用户提供崩溃的时间点.机型等信息,所以最好的办法就是我们把崩溃的信息保存在用户的sd卡上,必要的时候发送到后台或者让用户手动提供一下文件,下面就来看如何实现这个功能. Android 系统提供了处理这类问题的方法,Thread 类…
大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了崩溃现象,开发者应该及时获取在该设备上导致崩溃的信息,这对于下一个版本的bug修复帮助极大,所以今天就来介绍一下如何在程序崩溃的情况下收集相关的设备参数信息和具体的异常信息,并发送这些信息到服务器供开发者分析和调试程序. 源码下载地址:http://download.csdn.net/detail/…
将导致程序崩溃的堆栈调用Log写入文件,便于收集bug.在调试安卓程序,由于某些原因调试时手机不能连接PC端,无法通过IDE查看程序崩溃的Log,希望log能够写入文件中,对于已经发布的App可以通过该功能收集Bug. 01import java.io.FileNotFoundException; 02import java.io.FileOutputStream; 03import java.io.IOException; 04import java.io.PrintStream; 05imp…
Android系统的"程序异常退出",给应用的用户体验造成不良影响.为了捕获应用运行时异常并给出友好提示,便可继承UncaughtExceptionHandler类来处理.通过Thread.setDefaultUncaughtExceptionHandler()方法将异常处理类设置到线程上即可. 写一个例子来理解. 1.新建项目,新建一个MyCatchException类,实现uncaughtExceptionHandler. //全部错误捕捉器 public class MyCatc…
有时候由于测试不充分或者程序潜在的问题而导致程序异常崩溃,这个是令人无法接受的,在android中怎样捕获程序的异常崩溃,然后进行一些必要的处理或重新启动 应用这个问题困恼了我很久,今天终于解决了该问题,写篇文章记录一下. 首先捕获程序崩溃的异常就必须了解一下java中UncaughtExceptionHandler这个接口,android沿用了此接口,在android API中: 通过实现此接口,能够处理线程被一个无法捕捉的异常所终止的情况.如上所述的情况,handler将会报告线程终止和不明…
原文地址:http://blog.csdn.net/jiang547860818/article/details/53641113 android开发中经常会遇到程序异常,而已常常会遇到一出现异常APP就自动重启了,而已如果你的项目中应用到Fragment的切换的话,会出行页面重叠的现象.今天为了解决这个问题看了不少大牛的博客.最后终于把问题解决了,下面就把解决的方法做一个介绍. 总的问题解决定向是处理崩溃异常的方法.先说说我前面尝试的不成功的方法. 一.写一个类实现UncaughtExcept…
当android手机通过蓝牙连接扫码枪时,程序崩溃的原因之一是:键盘弹出或隐藏,触发程序走了onDestory->onCreate的生命周期,从而可能使得页面的某些初始化数据被清除了. 解决方法:通常在AndroidManifest.xml中指定Activity添加以下代码 1 android:configChanges="orientation|keyboard|keyboardHidden" 这句代码表示,当设备旋转.显示键盘.隐藏键盘时调用Activity的onConfig…
在应用发布以后,由于安卓机型的千差万别 ,可能会出现各种各样的问题,这时候如果我们可以将这些信息收集起来,并进行修改就很不错了.下面就来讨论一下怎么处理程序崩溃以后,错误信息的手机. Java中已经提供了一个接口Thread.UncaughtExceptionHandler来对运行时的异常进行处理.只需要实现这个接口,并覆写 public void uncaughtException(Thread thread, Throwable ex) 方法即可. 由于Application是Android…