Android 如何在后台运行服务,即使应用程序已关闭且自动启动权限已禁用

Android 如何在后台运行服务,即使应用程序已关闭且自动启动权限已禁用,android,Android,当应用程序从最近的屏幕上删除时,Android后台服务停止。即使应用程序关闭且自动启动权限禁用,任何人都可以帮助使服务始终在后台运行 某些设备具有自动启动权限。如果禁用此权限,则当我们从最近的屏幕关闭应用程序时,服务不会重新启动。您不能。如果应用程序被强制关闭,服务将无法运行,这是一个安全问题-用户需要有一种方法关闭应用程序。这包括刚安装应用程序时(其安装状态为强制停止状态),用户必须启动应用程序才能将其删除,然后才能运行任何服务。如果您使用自定义rom,我们无能为力。你可能会看到Faceboo

当应用程序从最近的屏幕上删除时,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设备也面临同样的问题,但你可以从你的应用程序中打开“自动权限”选项卡。但是您不能自行授予权限。您确定
服务已停止吗?。当应用程序从最近的应用程序中删除时,它实际上会重新启动。你怎么知道它停止了?是的,我知道,但某些设备具有自动启动权限。若此权限被禁用,那个么当我们从最近的屏幕关闭应用程序时,服务不会重新启动。