2

数日前に問題が発生しました。GPS 位置情報をリッスンするアプリケーションがあります。リスナーは常に機能するバックグラウンド サービスです。このサービスはアプリケーション レベルでデータを保存し、各アクティビティはこのデータを読み取ります。そのため、[戻る] ボタンを押すと、このイベントをキャッチしてサービスを停止できますが、[ホーム] ボタンを押すと、アプリケーションはバックグラウンド モードであり、GPS が常に動作するため、バッテリーを消費しますが、サービスは引き続き動作します。このイベントを処理するにはどうすればよいですか? ユーザーがホームボタンを押したときにすべてのサービスを停止し、ユーザーが戻ったときにそれらを再開したいと考えています。10倍

4

6 に答える 6

4

Android アプリケーションでホーム ボタン イベントを処理することはできません。Google は内部使用のみを目的として作成しています。

リンク 1 リンク 2

于 2011-05-13T12:17:59.103 に答える
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 に答える