当从近期屏幕中删除应用程序时,Android后台服务将停止。即使应用程序关闭并且自动启动许可权被禁用,任何人都可以帮助完成始终在后台运行的服务。如何在后台运行服务,即使应用程序关闭并且自动启动权限被禁用
某些设备具有自动启动权限。如果此权限被禁用,那么当我们从最近的屏幕关闭应用程序时,服务不会重新启动。
当从近期屏幕中删除应用程序时,Android后台服务将停止。即使应用程序关闭并且自动启动许可权被禁用,任何人都可以帮助完成始终在后台运行的服务。如何在后台运行服务,即使应用程序关闭并且自动启动权限被禁用
某些设备具有自动启动权限。如果此权限被禁用,那么当我们从最近的屏幕关闭应用程序时,服务不会重新启动。
你不行。如果应用程序被强制关闭,则服务无法运行,这是一个安全问题 - 需要用户关闭应用程序的方式。这包括应用程序刚刚安装(其安装强制停止状态),用户必须启动它才能在任何服务运行之前从中删除它。
当应用程序从最近的屏幕中删除时服务停止。 –
如果您使用自定义ROM,我们无能为力。你可能会看到Facebook和Messenger等应用程序仍在运行。他们正在运行,因为他们是该白名单上的应用程序的ROM。如果你想让你的服务保持活力,你可以做一些事情,但是这个过程也需要自动启动许可。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//setupNotificationListenerForNewRequest();
return Service.START_STICKY;
}
移除表单任务??
@Override
public void onTaskRemoved(Intent rootIntent) {
super.onTaskRemoved(rootIntent);
startService(new Intent(getApplicationContext(), Service.class));
}
被摧毁?
@Override
public void onDestroy() {
super.onDestroy();
Intent myIntent = new Intent(this, Service.class);
PendingIntent pendingIntent = PendingIntent.getService(getApplicationContext(), 0, myIntent, 0);
AlarmManager alarmManager1 = (AlarmManager) getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.HOUR, 6);
alarmManager1.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}
希望这将有助于...
那么有什么办法以编程方式启用自动启动权限? –
没有..我的Xaiomi设备面临同样的问题,但是您可以从您的应用打开自动权限选项卡。但你不能自己给予许可。 –
确定'Service'停止?当从最近的应用中删除应用时,它实际上会重新启动。你怎么知道它停止了? –
是的我知道,但有些设备具有自动启动权限。如果此权限被禁用,那么当我们从最近的屏幕关闭应用程序时,服务不会重新启动。 –