未捕获异常的处理

 
这种方法在网上已经有了部分介绍,但是大部分人不知道怎么取消Force Close的对话框。“通过重写Android应用程序的Application基类自己实现 Thread.UncaughtExceptionHandler接口的uncaughtException方法是可以避免出现FC窗口的,用户感觉直接退出了一样”。这是网上能找到的说明,这段话让人看了摸不着头脑,大部分人不知道怎么重写Application基类并实现接口。废话不多说,直接上代码! 首先需要在onCreate中添加此句代码:Thread.setDefaultUncaughtExceptionHandler(new AntrouApp());表明出现异常由自己来处理。 接下来重写异常处理类
public class AntrouApp extends Application implements Thread.UncaughtExceptionHandler {
    	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		super.onCreate();
	}
	@Override
    	public void uncaughtException(Thread thread, Throwable ex) {
		ex.printStackTrace();		
		// 使用下面这个函数时,应用直接退出,无提示信息
		//    android.os.Process.killProcess(android.os.Process.myPid());  
		//Thread.getDefaultUncaughtExceptionHandler().uncaughtException(thread, ex); 
		//若没有处理,则按照系统自己的处理方式处理
 
		//实验发现上面的异常处理有的时候不能退出应用,因此建议写一个单例List,进行储备进入过的Actitvty,		然后再次调用单例退出。下一篇将自己的单例贴上。
    	} 
}

此方法会强制结束所有的Activity和service,当然也可以在service里进行,达到后台强制结束任务的目的。在Activity结束后,系统会回到最近为onpause状态的Activity。
 
 
经过本人的亲自验证,当发生未捕获的异常时,app直接退出,不会弹出“很抱歉,"xx应用"已停止运行。”的对话框
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值