数日前に問題が発生しました。GPS 位置情報をリッスンするアプリケーションがあります。リスナーは常に機能するバックグラウンド サービスです。このサービスはアプリケーション レベルでデータを保存し、各アクティビティはこのデータを読み取ります。そのため、[戻る] ボタンを押すと、このイベントをキャッチしてサービスを停止できますが、[ホーム] ボタンを押すと、アプリケーションはバックグラウンド モードであり、GPS が常に動作するため、バッテリーを消費しますが、サービスは引き続き動作します。このイベントを処理するにはどうすればよいですか? ユーザーがホームボタンを押したときにすべてのサービスを停止し、ユーザーが戻ったときにそれらを再開したいと考えています。10倍
12420 次
6 に答える
4
onKey...メソッドまたはonStopのいずれかを介して戻るボタンをキャッチしているようです。アプリがバックグラウンドになるたびに使用されるように、コードをonPause()メソッドに配置する必要があります。
于 2011-02-17T11:05:41.300 に答える
2
@Override
protected void onUserLeaveHint()
{
// When user presses home page
Log.v(TAG, "Home Button Pressed");
super.onUserLeaveHint();
}
于 2014-05-12T02:29:36.080 に答える
0
OnKeyListenerを作成し、押されたキーがHomeであるかどうかを確認できます。しかし、私はそれを試したことがありません。
于 2011-02-17T11:06:32.423 に答える
0
customActivity と呼ばれるカスタム アクティビティを作成します。Activity は、(customActivity 内の) メソッドをオーバーライドして、ホーム ボタン イベントをキャッチし、サービスを停止します (アプリケーション クラスでサービスを作成して開始します)。activity_class の Activity の代わりに customActivity を拡張するようになりました。
于 2012-10-01T21:08:38.843 に答える
-5
ホームボタンを長押しすると、実行中のプロセスが登録され、必要なプロセスが選択され、正常に終了します。
または、ホーム -> 設定 -> アプリケーション -> アプリケーションの管理から、不要なプロセスを強制終了できます。
于 2011-02-17T10:55:50.090 に答える