私のAndroidアプリケーションはクライアントであり、誰かがホームボタンをクリックするとサーバーにメッセージを送信し、ユーザーがアプリケーションに戻ったときにサーバーにもメッセージを送信したい. HOME ボタンの keyEvent や、アプリケーションがバックグラウンドに移行するときにのみ呼び出されるメソッドを上書きできれば、メッセージを送信して、onStart() ごとにチェックされるシングルトンに静的変数を設定できるので、基本的にはどういうわけかHOMEボタンを「オーバーライド」する必要があります。私は以下を試しました:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_HOME) {
//...
return true;
}
return super.onKeyDown(keyCode, event);
}
それは単に機能しません。ブレークポイントを入れましたが、HOME ボタンはこのメソッドをまったくトリガーしません。(サムスン ギャラクシー エース、アンドロイド 2.2.1)。
また、次のように上書きしようとしましたonUserLeaveHint()
:
@Override
protected void onUserLeaveHint() {
//...
super.onUserLeaveHint();
}
しかし問題は、このメソッドは、HOME ボタンを押したときやアプリケーションが中断されたときだけでなく、他のアクティビティに移動したとき (そして現在のアクティビティを終了したとき) に呼び出されることです。この問題の解決策はありますか?