x 秒ごと、y メートルごとに電話の位置を報告する locationManager を使用して、サービス内に位置リスナーを実装しました。「最良のプロバイダー」を使用して初期化されます。アプリが終了した後、サービスはバックグラウンドで実行されます。これはうまく機能しているようです。私は高速道路に沿って運転していて、場所を取得しています。ただし、散発的にレポートを「停止」するようです。突然サービスが停止し、レポートを再開するにはアプリを再起動する必要があります。私はこれにかなり慣れていないので、事前にお詫び申し上げます。私のサービスを停止する可能性のあるものはありますか? サービスの「onDestroy」メソッドにコードを挿入しようとしましたが、到達していません。未処理の例外をキャッチしていますが、それらもないようです。Android OS がサービスを停止している可能性があります。
1 に答える
0
Android は、メモリ不足になるか空のプロセスになると、プロセスを停止します。以下の重要度に基づいてプロセスを削除します。
最初に、、、、のプロセスを強制終了しますIMPORTANCE_EMPTY = 500;
。IMPORTANCE_BACKGROUND = 400;
IMPORTANCE_SERVICE = 300;
IMPORTANCE_CANT_SAVE_STATE = 170;
IMPORTANCE_PERCEPTIBLE = 130;
IMPORTANCE_VISIBLE = 200;
IMPORTANCE_FOREGROUND = 100;
どのような電話を使用していますか? 多数のアプリが同時に使用されている場合、フレームワークはいくつかのバックグラウンド アプリを強制終了してメモリを回復できます。
onLowMemoryとonTrimMemoryにログを追加して、これらが呼び出されているかどうかを確認できます。また、整数引数をログに記録しますonTrimMemory
于 2013-09-20T03:14:50.790 に答える