「スタック」にある解決策をいくつか試してみましたが、何も助けてくれませんでした。これは問題です: 私は1 GBのRAMを持つAsus Memopad 8タブレットを持っています。それは "KitKat"を実行します。基本的には約200 MBの空きRAMがあります。 そのタブレットでは、現在実行中のフォアグラウンドアプリケーションを監視するサービスを作成しようとしています。選択した特定のアプリケーションの場合は、特定の操作を行います。問題は、私のタブレットがを寝ている間に私のサービスは、Androidのによって殺されていることであるAndroidサービスで私のサービスが殺され続けています
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
ComponentName componentInfo = taskInfo.get(0).topActivity;
return componentInfo.getPackageName();
:エッセンスサービスで (IntentServiceを拡張)はこの2秒ごとに行います。だから、私は私のサービスを開始、それは大丈夫動作します。私は私のタブレットを使用して終了したら、私はそれを離れて置く。数時間後にもう一度私のタブレットを使います - サービスはなくなりました。それを置いて数分後に私のタブレットを使用すると、サービスはまだ動作します。
私はこれを試してみました:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_REDELIVER_INTENT;
}
私も運なし "START_STICKY" を試してみました。
Androidのサービスを無効にするにはどうすればよいですか?私はそれがすべての時間を実行する必要があり、私のステータスバーに永続的な通知を入力したくないユーティリティサービスのように "foregroundService"としてそれを実行したくないです。サービスが正しいフォアグラウンドアプリを実行していることを検出したとき、私はすでに通知を受けています。
wakelockを試してみてください – Ayaanp