0

Android Oreo 8.0 (API レベル 26) を搭載したデバイスでJobService.onTaskRemoved()は呼び出されません

  • そのようなイベントを聞く方法は?

動作を停止したコード:

class TaskRemovalWatcherService: JobIntentService() {
    ...
    override fun onTaskRemoved(rootIntent: Intent?) {  
    //not called on Android Oreo

        super.onTaskRemoved(rootIntent);   
        onAppRemovedFromRecentApps()
    }
}

App-Task が最近のアプリから削除されたら、私はする必要があります

  1. プロセスを停止する
  2. 2 番目の AppTask を完了する

AppTasks.size = 2 で、1 つのタスクが最近のアプリから削除された場合、2 番目の AppTask がまだメモリ内にあるため、プロセスは強制終了されません。

アップデート:

  1. use JobIntentService.enqueueWorkthen 直後JobIntentService.onHandleWork() JobIntentService.onDestroy()が呼び出されたとき
  2. when use JobService.schedule()throws IllegalArgumentExceptionwhen schadule ジョブを制約なしで使用します。

PS各 X 秒ごとに isTaskWasRemoved をチェックするという考えは、良いものではないようです。

4

2 に答える 2