Android Crash框架Recovery

来源:互联网 发布:html 调用php class 编辑:程序博客网 时间:2024/05/16 03:48

?

优点:摆脱原始的Crash界面处理
缺点:无法自定义界面实现自定义Ui,如果希望重新制定crash的UI,可以通过将项目以一个lab的方式导入
介绍:“Recovery”帮助你自动处理程序在运行时的Crash,它含有以下几点功能
自动恢复Activity Stack和数据
支持只恢复栈顶Activity
Crash信息的显示与保存
应用重启或者清空缓存
一分钟内两次恢复失败不再恢复而进行重启应用
运行中遇到的问题,这里使用到了6.0如果你的版本是大于6.0的,这里build.VERSION_CODES.M就不会报错,但是如果版本时低于6.0,需要将该部分代码去掉
使用:
Gradle

    compile 'com.zxy.android:recovery:0.0.8'

Maven

    <dependency>        <groupId>com.zxy.android</groupId>        <artifactId>recovery</artifactId>        <version>0.0.8</version>        <type>pom</type>    </dependency>

你可以使用类似如下初始化代码在你自定义的Application中进行初始化:

    Recovery.getInstance()            .debug(true)            .recoverInBackground(false)            .recoverStack(true)            .mainPage(MainActivity.class)            .callback(new MyCrashCallback())            .init(this);

并且在manifest中授权

android.permission.GET_TASKS
如果你不想在应用发生Crash时显示RecoveryActivity,你可以使用静默恢复来进行无界面的恢复你的应用,那么请使用类似如下初始化代码在你自定义的Application中进行初始化:

Recovery.getInstance()        .debug(true)        .recoverInBackground(false)        .silent(false, Recovery.SilentMode.RECOVER_ACTIVITY_STACK)        .init(this);ArgumentsArgument    Type    Functiondebug   boolean 是否开启debug模式recoverInBackgroud  boolean 当应用在后台时发生Crash,是否需要进行恢复recoverStack    boolean 是否恢复整个Activity Stack,否则将恢复栈顶ActivitymainPage    Class<? extends Activity>   回退的界面callback    RecoveryCallback    发生Crash时的回调silent  boolean,SilentMode  是否使用静默恢复,如果设置为true的情况下,那么在发生Crash时将不显示RecoveryActivity界面来进行恢复,而是自动的恢复Activity的堆栈和数据,也就是无界面恢复SilentMode

RESTART - 重启应用
RECOVER_ACTIVITY_STACK - 恢复Activity堆栈
RECOVER_TOP_ACTIVITY - 恢复栈顶Activity
RESTART_AND_CLEAR - 重启应用并清空缓存数据
Callback

public interface RecoveryCallback {

void stackTrace(String stackTrace);void cause(String cause);void exception(String throwExceptionType, String throwClassName, String throwMethodName, int throwLineNumber);

}
Custom Theme

自定义RecoveryActivity的主题,需重写以下styles属性:

<color name="recoveryColorPrimary">#F44336</color><color name="recoveryColorPrimaryDark">#D32F2F</color><color name="recoveryColorAccent">#BDBDBD</color><color name="recoveryTextColor">#FFFFFF</color>

Crash File Path

{SDCard Dir}/Android/data/{packageName}/files/recovery_crash/
Update history

VERSION-0.0.5——支持静默恢复 VERSION-0.0.6——加强静默恢复模式的保护 VERSION-0.0.7——添加混淆配置 VERSION-0.0.8——增加可配置不需要恢复的Activity,方法:skip()

1 0
原创粉丝点击