我应该在android服务中的onDestroy方法中调用onCreate方法吗?

时间:2017-12-01 06:21:38

标签: android android-studio android-service

我想在它被销毁时再次启动服务。

@Override
    public void onDestroy() {
        super.onDestroy();
        onCreate();
    }

1 个答案:

答案 0 :(得分:2)

你不应该这样做。这不会做任何事情。要重新启动服务,您应该在 onTaskRemove()上重新启动它,如下所示。

@Override
public void onTaskRemoved(Intent rootIntent) {
        Intent restartService = new Intent(getApplicationContext(),
                this.getClass());
        restartService.setPackage(getPackageName());
        PendingIntent restartServicePI = PendingIntent.getService(
                getApplicationContext(), 1, restartService,
                PendingIntent.FLAG_ONE_SHOT);
        AlarmManager alarmService = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
        alarmService.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + 1000, restartServicePI);
}