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

标签 android android-studio android-service

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

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

最佳答案

你不应该这样做。这不会做任何事情。要重新启动服务,您应该像下面那样在 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);
}

关于android - 我应该在android服务的onDestroy方法中调用onCreate方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47587720/

相关文章:

android - 过滤 ListView 突出显示不正确的项目

android - 在 Android 的 body() 方法中改造返回 null

java - 从单个按钮的多个 fragment 中提取数据

android - 仅在华为设备中关闭应用程序时服务被杀死

java - 按下通知按钮时未调用 BroadcastReceiver

java - 偏好和共享偏好之间的区别?什么应该与铃声设置一起使用?

android - 使用耗时类型设置警报会在内核中打印来自 dmesg 的不准确延迟

android - 网格布局列跨度不起作用

android - 在计时器后启动 Activity

android - 公共(public)内联乐趣 String.toFloat() : Float defined in kotlin. 文本