android中的服务没有重启

时间:2016-09-10 06:40:08

标签: android service

我在android中使用服务来完成某些任务,我希望每次都能运行我的服务。 但是当我清除Android手机的内存时,我的服务被杀死而没有重启。 我已经阅读了几篇文章,建议START_STICKY将解决问题但不会发生。

以下是我在服务中的onStartCommand代码,我在其中返回START_STICKY。在这种情况下,即使onDestroy也没有被调用。

public int onStartCommand(Intent intent, int flags, int start_Id) {
    return START_STICKY;
}

1 个答案:

答案 0 :(得分:0)

尝试使用此功能在强制停止后重新启动服务。

注意:如果您还要从其他地方停止此服务,那么它也会再次重新启动服务,因此您必须检查此功能,即停止服务或强行停止服务。 如果您自己停止服务,请在共享首选项中保存服务状态停止类型[非强制],并使用该状态检查不再启动它。

@Override
    public void onTaskRemoved(Intent rootIntent){
        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() + 5000,
                restartServicePendingIntent);

        super.onTaskRemoved(rootIntent);
    }