常にバックグラウンドで実行したいプロセスがあります。
だから私はそれを作ったService
。
私の質問は、ユーザーがこのサービスを強制終了するのを防ぐ方法はありますか? (サードパーティのアプリを使用している場合でも)
常にバックグラウンドで実行したいプロセスがあります。
だから私はそれを作ったService
。
私の質問は、ユーザーがこのサービスを強制終了するのを防ぐ方法はありますか? (サードパーティのアプリを使用している場合でも)
多分これはあなたを助けることができます:
final Intent intent = new Intent(context, YourService.class);
final PendingIntent pending = PendingIntent.getService(context, 0, intent, 0);
final AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarm.cancel(pending);
long interval = 30000;//milliseconds
alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),interval, pending);
このようにして、サービスは AlarmManager から定期的に onStart イベントを受け取ります。サービスが停止している場合は、再開されます。したがって、無限に実行されると言うかもしれません。より完全なサンプルは、Photostream サンプル アプリケーションhttp://code.google.com/p/apps-for-android/にあります。
•開始されたサービスは、startForeground(int, Notification) API を使用して、サービスをフォアグラウンド状態にすることができます。この場合、システムは、ユーザーがアクティブに認識しているものであり、メモリが不足しているときに強制終了の候補ではないと見なします。(理論的には、現在のフォアグラウンド アプリケーションからの極度のメモリ プレッシャの下でサービスが強制終了される可能性はありますが、実際にはこれは問題になりません。)