1

戻るボタンのようにホームボタンをオーバーライドできないことは知っています。しかし、ホームボタンが押された場合、Android システムはイベントを発生させることができますか? ユーザーがホームボタンを押した場合に警告メッセージを表示するために、このアクションをキャッチしたいと考えています。私はいくつかのオプションを調べましたが、初心者にとって最も明白なものは、ホームボタンをオーバーライドすることです

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_HOME) {
        // action goes here
    } else {
        return super.onKeyDown(keyCode, event);
    }
}

しかし、これは機能しません。私はそれを完全に認識しています。

現在の処理が終了すると、onPause メソッドが呼び出されActivityます。このメソッドは、アプリケーションでユーザーが変更されたときにも呼び出されActivityます。ユーザーがホームボタンを押したときに通知ボックスを表示できる方法はありますか?

前もって感謝します

4

2 に答える 2

2
@Override
    protected void onUserLeaveHint() {
        // TODO Auto-generated method stub
        super.onUserLeaveHint();
    }

これも役立ちます

于 2012-11-29T10:40:22.487 に答える
2

実際には、他のようにホームボタンが押されたイベントをキャッチすることはできませんが、ユーザーを保護するための機能です。

しかし、あなたの状況にはハックがあります:

@Override
public void onAttachedToWindow()
{  
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);     
    super.onAttachedToWindow();  
}

onAttachedToWindow

これは、ビューがウィンドウにアタッチされたときに呼び出されます

このハックがどのように機能するかについては、Activity Lifecycleを参照してください。

また、この方法が機能することを示す証拠があります。

于 2012-11-29T09:57:15.140 に答える