今まで(Android Oreoの前)Service.onTaskRemoved()
、次のように、アプリの最近からの削除を処理していました:
public class OnAppRemovedFromRecentListener extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return Service.START_NOT_STICKY;
}
@Override
public void onTaskRemoved(Intent rootIntent) {
super.onTaskRemoved(rootIntent);
// there I am handling removing from recents
}
}
しかし、Android Oreoでアプリを実行すると、同じ動作を実現できません。2つのアプローチを試しました:
- まだ使用している
Service
場合、アプリがバックグラウンドにあるときにしばらく非アクティブになった後、サービスが破壊され、ユーザーがアプリを最近から削除するonTaskRemoved
と呼び出されません。 - このサービスから切り替えて開始
Service
すると、ほとんどすぐに OnAppRemovedFromRecentListener が破棄され、アプリが最近のものから削除されたときにも呼び出されませんJobIntentService
JobIntentServiceLauncher.enqueueWork
onTaskRemoved
常に機能するAndroid Oreoの最近のアプリから私のアプリを削除することを検出する方法を知っている人はいますか?