Home

Awesome

点我下载demo(密码:cactus)

注意!注意!注意!写在前面

如果你项目里使用了Thread.UncaughtExceptionHandler或者第三方异常捕获库,比如友盟,bugly等,Cactus请在Thread.UncaughtExceptionHandler或者第三方异常捕获库,比如友盟,bugly等之后注册使用,并且建议在Application里注册使用。 为什么要这样操作?因为如果android 8.0以上设备隐藏了通知栏信息,当您的app崩溃重启后会出现invalid channel for service notification异常,而该异常属于系统级别的,没法捕获,所以Cactus对该异常进行了杀死app的操作,但是并不能保证第三方异常监控还是能捕获它。 如果第三方后台还是有该异常信息,你又觉得该异常影响你的app崩溃率,请调用hideNotificationAfterO(false)方法,打开通知栏信息。

使用

android studio

用法(具体api请参考api说明)

java用法

kotlin用法

混淆规则(proguard-rules.pro)

 -keep class com.gyf.cactus.entity.* {*;} 

api说明,★ 标识的建议用户修改,而不是使用默认值

api说明api说明
★ setChannelId渠道Id,默认是Cactus,建议用户修改,非必传★ setChannelName渠道名,用于设置里通知渠道展示,默认是Cactus,建议用户修改,非必传
★ setTitle通知栏标题,默认是Cactus,建议用户修改,非必传★ setContent通知栏内容,默认是Cactus is running,建议用户修改,非必传
★ setSmallIcon通知栏小图标,默认是库里的图标,建议用户修改,非必传setLargeIcon通知栏大图标,默认没有大图标,非必传
★ setServiceId服务Id,默认是1到Int.MAX_VALUE随机数,非必传setPendingIntent设置PendingIntent,用来处理通知栏点击事件,非必传
addCallback增加回调,用于处理一些额外的工作,非必传addBackgroundCallback前后台切换回调,用于处理app前后台切换,非必传
setWorkerEnabled是否可以使用WorkManager,默认可以使用,非必传setCrashRestartUIEnabled奔溃是否可以重启用户界面,默认为false,google原生rom android 10 以下可以正常重启,非必传
setRemoteViews设置RemoteViews(自定义布局),非必传setBigRemoteViews设置BigRemoteViews(自定义布局),非必传
hideNotification是否隐藏通知栏,经测试,除了android 7.1手机之外都可以隐藏,默认隐藏,非必传hideNotificationAfterO是否隐藏Android 8.0以上通知栏,默认隐藏
setMusicEnabled是否可以播放音乐,默认可以播放音乐,非必传setBackgroundMusicEnabled后台是否可以播放音乐,默认不可以后台播放音乐,非必传
setMusicId设置自定义音乐,默认是无声音乐,该api只要在isDebug为true才会有生效,非必传★ setMusicInterval设置音乐间隔时间,时间间隔越长,越省电,默认间隔时间是0,非必传
setOnePixEnabled是否可以使用一像素,默认可以使用,只有在android p以下可以使用,非必传isDebug是否Debug模式,默认没有调试信息,非必传
setNotification设置notification,非必传,如果不传,将使用用户根据其他api设置的信息构建NotificationsetNotificationChannel设置NotificationChannel,非必传,如果不传,将使用默认的NotificationChannel
register必须调用,建议在Application里初始化,使用Kotlin扩展函数不需要调用此方法unregister注销,并不会立马停止,而是在1s之后停止,非必须调用,比如可以在app完全退出的时候可以调用,根据你的需求调用
restart重启,与register区别在于不会重新配置CactusConfig信息,而是使用上一次配置的信息isRunning是否在运行

流程图

框架流程图

保活效果,仅供参考(数字代码oom_adj优先级,优先级数字越小越不容易被杀)

维度android 6.0以下虚拟机android 7.1虚拟机android 7/8/8.1/9/10虚拟机vovo x23 (android 9)华为 mate20 /OnePlus (android 9)华为 mate30 pro (android 10)
前台000000
后台(优化前)6立马死了1181111
后台(优化后)133430
息屏(优化前)6立马死了1191111
息屏(优化后)033430

更新说明

1.1.2

1.1.1

1.1.0

1.0.8

1.0.7

联系我