2017-09-12 3 views
1

私はバックグラウンドでサービスを実行しようとしました。 Start_Stickyを使用しました。 基本的にはanswerです。それは多くのデバイスで動作しますが、Xiaomi Lenovoのようなデバイスでは、「最近のアプリ」画面からアプリが削除されるとサービスが停止します。私はまた、特定のアプリケーションと完全なシステムのための省電力を無効にしようとしましたが、それはどちらも動作しません。(Xiomiのような)バックグラウンドサービスを殺すデバイスでバックグラウンドでアプリを実行するにはどうすればいいですか?

どのように私はそれらのデバイスで動作させるには?私は可能性があることを知っているいくつかのアプリ(whatsappのような)とゲームは、アプリが "最近のアプリ"画面にない場合でも通知を送信することができます。

答えて

0

サービスクラスのonTaskRemoved()メソッドでアラームを1分で作成できます。自動的に1分後に起動し、サービスを再起動します。あなたが最近使ったアプリの「オールクリア」をクリックした場合、サービスクラスで

public void onTaskRemoved(Intent rootIntent) { 
    Intent restartService = new Intent(getApplicationContext(), YourService.class); 
    restartService.setPackage(Yourpackagename); 
    PendingIntent restartServiceIntent = 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, restartServiceIntent); 
} 
+0

onTaskRemoved()が動作しません。 – lcukerd

+0

この場合、10分ごとに繰り返しアラームが設定されます。 –

関連する問題