与以前的版本不同,在 4.4 中,将应用程序从最近的任务中删除会永久杀死应用程序及其服务(如强制停止),即使它正在运行后台服务。它显示 0 个进程 1 个服务,但服务也不起作用。理想情况下,它不应该终止后台服务,并且在 4.3 之前的版本中也不会。知道为什么 4.4 会发生这种情况吗?
知道了。这是 4.4 中的一个错误。我尝试了这个,效果非常好(尽管这是一个肮脏的锻炼)。
只需重写此方法 -:
public void onTaskRemoved(Intent rootIntent) {
Log.e("FLAGX : ", ServiceInfo.FLAG_STOP_WITH_TASK + "");
Intent restartServiceIntent = new Intent(getApplicationContext(),
this.getClass());
restartServiceIntent.setPackage(getPackageName());
PendingIntent restartServicePendingIntent = PendingIntent.getService(
getApplicationContext(), 1, restartServiceIntent,
PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmService = (AlarmManager) getApplicationContext()
.getSystemService(Context.ALARM_SERVICE);
alarmService.set(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime() + 1000,
restartServicePendingIntent);
super.onTaskRemoved(rootIntent);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)