如何减少Android服务重启时间?

如何减少Android服务重启时间?,android,android-service,Android,Android Service,我知道如果我在onstart命令中返回START\u REDELIVER\u INTENT,Android服务将重新启动 我写了一个服务,并希望在用户在最近的列表中关闭应用程序后使其保持活动状态 @Override public int onStartCommand(Intent intent, int flags, int startId) { return START_REDELIVER_INTENT; } 在我的测试之后,如果用户关闭最近列表中的应用程序,我的服务将被终止 @O

我知道如果我在onstart命令中返回
START\u REDELIVER\u INTENT
,Android服务将重新启动

我写了一个服务,并希望在用户在最近的列表中关闭应用程序后使其保持活动状态

@Override
public int onStartCommand(Intent intent, int flags, int startId) {

    return START_REDELIVER_INTENT;
}
在我的测试之后,如果用户关闭最近列表中的应用程序,我的服务将被终止

@Override
public int onStartCommand(Intent intent, int flags, int startId) {

    return START_REDELIVER_INTENT;
}
由于
START\u REDELIVER\u意图
,Android将自动重启服务,但时间太长


有些时间服务将在20秒内重新启动,有些时间将在一分钟内重新启动,如何减少此时间?最好在5秒内完成。

在您的服务类中使用此代码。当用户清除应用程序时,此重新启动服务。您可以将START\u STICKY返回到onstartCommand方法

@Override
    public void onTaskRemoved(Intent rootIntent) {
        Intent intent2 = new Intent(this.getApplicationContext(), this.getClass());
        intent2.setPackage(this.getPackageName());
        PendingIntent pendingIntent = PendingIntent.getService((Context)this.getApplicationContext(), (int)1, (Intent)intent2,0);
        ((AlarmManager)this.getApplicationContext().getSystemService(ALARM_SERVICE)).set(3, 500 + SystemClock.elapsedRealtime(), pendingIntent);
        super.onTaskRemoved(rootIntent);
    }

onTaskRemoved()。在您的情况下会发生什么?您是否在所有具有不同API版本的
Android
设备上测试过它???我讨论的是一般情况,而不是唯一测试过设备的特殊情况。