Android Service keep-alive module.(Android Service保活模块:5.0以下使用c来fork进程,5.0以上使用JobScheduler来保活进程)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.idea
app
gradle/wrapper
.gitignore
README.md
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

README.md

ServiceKeep

Android Service保活模块(5.0以下使用c来fork进程,5.0以上使用JobScheduler来保活进程)

具体调用:

1、在WorkService的onStartCommand中执行要保活的操作业务。
2、在初始化过程中调用KeepAliveManager.INSTANCE.startKeepAliveService(context);
3、停止服务调用KeepAliveManager.INSTANCE.stopKeepAliveSerice(context);
4、配置AndroidManifest.xml,增加如下配置:
<!--增加唤醒WorkService的定时任务-->
<service
  android:name="jack.com.servicekeep.service.KeepAliveJobSchedulerService"
  android:persistent="true"
  android:exported="false"
  android:permission="android.permission.BIND_JOB_SERVICE"
  android:process="jack.com.servicekeep.job_scheduler_service"/>

<!--todo 自己业务保活的Service,重写WorkService中的onStartCommand其中执行自己的业务逻辑-->
<service
  android:name="jack.com.servicekeep.service.WorkService"
  android:exported="true"
  android:persistent="true"
  android:label="Jack"
  android:process="com.jack.workservice">
</service>

<!--开机启动监听-->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

开发常见异常:

1、由于小米系统的深度定制,使用方需要: 设置---自启动管理---选择应用(如jack.com.servicekeep)---打开自启动即可。
2、直接杀死什么进程,保活的是WorkService,不是demo。把demo干死了是不可以的,Android的底层机制。