0

メインのアクティビティが作成されたときに開始されるサービスでGPSロケーションプロバイダーを使用してAndroidアプリを作成しています(サービスが既に実行されている場合を除く)。私は、メモリ不足が発生した場合にタスクマネージャがサービスを強制終了する可能性があるという例外を除いて、サービスは引き続き実行されるという印象を受けました。使用可能なメモリの量に関係なく、アクティビティが非常に少ない期間がある場合、何らかの理由でサービスが再開されます。ユーザーが外にいてGPSが位置を解決できる場合、サービスは30秒ごとに位置を取得し、その間のgpsをオフにします(バッテリーを節約するため)。この場合、サービスは問題なく実行され続けますが、ユーザーが内部に移動し、5秒以内にGPS位置が見つからない場合、その後、サービスはGPSをオフにし、ユーザーが屋外に戻ったかどうかを確認するために200秒ごとにGPSを再アクティブ化するだけです。この場合、サービスが停止し、アプリが再度開かれてアクティビティがサービスを再開するまで再開されないことがあります。プロセスが中断されないように、別のサービスを作成しました。なぜこれが起こっているのか誰かが知っていますか?どうもありがとうございました!-ドム

4

1 に答える 1

1

サービスとウェイクロックを扱ったマークマーフィーの例を見てみましょう。

WakefulIntentService

彼のコード例からそれを理解できない場合は、問題が詳細に説明されている彼の高度なAndroidブックを入手する必要があります。

高度なAndroid開発への忙しいコーダーのガイド

これらはAndroid開発に関する最高の本のいくつかであり、最小限のコストに見合う価値があります。

于 2011-04-23T20:40:47.057 に答える