android 自动退出日志,Android全局异常处理(可以做强制退出和carsh日志抓取)

在做android项目开发时,大家都知道都会遇到程序报错或者Anr异常,会弹出来一个强制退出的弹出框,对于开发人员是好事,但是对于用户体验 UI实在是太丑了,别说用户接受不了,就连我们自己本身可能都接受不了。有时候我们会做强制退出摸个程序或者扑捉异常进行处理  这样就类似苹果闪退界面一样 没任何提示  (虽然闪退也是用户不愿意看到的)

直接贴

/**

* 自定义的 异常处理类 , 实现了 UncaughtExceptionHandler接口

*

*/

public class CrashHandler implements UncaughtExceptionHandler {

// 需求是 整个应用程序 只有一个 MyCrash-Handler

private static CrashHandler INSTANCE ;

private Context context;

//1.私有化构造方法

private CrashHandler(){

}

public static synchronized CrashHandler getInstance(){

if (INSTANCE == null)

INSTANCE = new CrashHandler();

return INSTANCE;

}

public void init(Context context){

this.context = context;

}

public void uncaughtException(Thread arg0, Throwable arg1) {

System.out.println("程序挂掉了 ");

// 在此可以把用户手机的一些信息以及异常信息捕获并上传,由于UMeng在这方面有很程序的api接口来调用,故没有考虑

//干掉当前的程序

android.os.Process.killProcess(android.os.Process.myPid());

}

}

代码:

CrashApplication

/**

* 在开发应用时都会和Activity打交道,而Application使用的就相对较少了。

* Application是用来管理应用程序的全局状态的,比如载入资源文件。 初始化第三方工具包

* 在应用程序启动的时候Application会首先创建,然后才会根据情况(Intent)启动相应的Activity或者Service。

* 在本文将在Application中注册未捕获异常处理器。

*/

public class MyApplication extends Application {

@Override

public void onCreate() {

super.onCreate();

CrashHandler handler = CrashHandler.getInstance();

handler.init(getApplicationContext());

Thread.setDefaultUncaughtExceptionHandler(handler);

}

}

在AndroidManifest.xml中注册自定义的MyApplication

在AndroidManifest.xml中注册

package="org.wp.activity" android:versionCode="1" android:versionName="1.0">

android:name=".MyApplication" android:debuggable="true">

重写UncaughtExceptionHandler这个类不仅可以做全局报错处理 我们再强制退出程序功能时候 可以自定义个变量造个空指针 然后程序自然会报错 但是不会出现任何提示消息 这样用户根本无法察觉到 但是程序退出的方法不止这一个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值