前言:应用一直保活是不可能的,但是可以确保一段时间内不会重启。
1.保活才用的是开启一个工作服务:
public void startPollingService(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
JobInfo.Builder builder = new JobInfo.Builder(1, new ComponentName(context,
KeepLiveService.class));
builder.setMinimumLatency(0)
.setBackoffCriteria(JobInfo.DEFAULT_INITIAL_BACKOFF_MILLIS, JobInfo.BACKOFF_POLICY_LINEAR);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
builder.setPeriodic(JobInfo.getMinPeriodMillis(), JobInfo.getMinFlexMillis());
} else {
builder.setPeriodic(TimeUnit.MINUTES.toMillis(5));
}
JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
if (jobScheduler != null) {
jobScheduler.schedule(builder.build());
}
} else {
//系统5.0以下的可继续使用Service
Intent intent = new Intent(context, KeepLiveService.class);
context.startService(intent);
}
}
2 KeepLiveService.classs