android程序崩溃重启,Android Crash处理 崩溃后禁止默认重启与崩溃后手动重启

本文介绍了如何处理Android程序崩溃,包括禁止崩溃后默认重启和设置崩溃后手动重启。通过自定义CrashHandler,可以收集错误信息,显示自定义Toast,并在设定的时间后重启应用。同时,文章提供了相应的代码示例,展示了如何关闭栈内所有Activity,避免无限崩溃和用户体验下降。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载请注明出处。

伸手党福利:compile 'com.tuzhenlei:crashhandler:1.0.1'

详情参见文档和demo:github地址

/**简单初始化*/

//CrashHandler.getInstance().init(this, BuildConfig.DEBUG);

/**个性初始化*/

CrashHandler.getInstance().init(this, BuildConfig.DEBUG, true, 0, MainActivity.class);

/**

* 参数1:this

* 参数2:是否保存日志到SD卡crash目录,建议设置为BuildConfig.DEBUG,在debug时候保存,方便调试

* 参数3:是否crash后重启APP

* 参数4:多少秒后重启app,建议设为0,因为重启采用闹钟定时任务模式,app会反应3秒钟,所以最快也是3-4秒后重启

* 参数5:重启后打开的第一个activity,建议是splashActivity

*/

/**

* 更多的设置方法

*/

/*

//自定义Toast

Toast toast = Toast.makeText(this, "自定义提示信息", Toast.LENGTH_LONG);

toast.setGravity(Gravity.BOTTOM, 0, 0);

CrashHandler.setCustomToast(toast);

//自定义提示信息

CrashHandler.setCrashTip("自定义提示信息");

//自定义APP关闭动画

CrashHandler.setCloseAnimation(android.R.anim.fade_out);

*/

复制代码

Crash相信是很多朋友开发过程经常遇到的问题。经过本人测试,Android在API21以下(也就是Android5.0以下),crash后会直接退出应用;但是在API21以上(5.0以上系统),会遵循以下原则重启:

包含service, 如果程序crash的时候,运行着service,那么系统会重新启动service 。

不包含service,只有一个Activity,那么系统不会重新启动该Activity 。

不包含service,但是当前栈中包含两个Activity, A–>B, 如果B crash,那么系统会重启A。

不包含service,但是当前栈中包含三个Activity, A–>B–>C, 如果C crash,那么系统会重启B,并且A仍然存在,即可以从重启的Back到A。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值