ホームボタンのキャプチャ方法は?

私のアプリケーションでは、ユーザーがホームボタンをクリックするだけで、アクティビティスタックを維持したい場合、ログイン画面を開きたいと思います。

これを行う方法はありますか?

0
ミッション・インポッシブル。
追加された 著者 Pankaj Kumar,
ホームボタンクリックイベントを取得できません
追加された 著者 ud_an,

3 答え

セキュリティ上の理由から、ホームボタンクリックイベントを確実にキャプチャすることはできません。

ただし、 onNewIntent()メソッドをオーバーライドすることで、ホームボタンを押して実行するアクションと一緒に何かを行うことができます。

5
追加された

同じことをする直接的な方法はありません。 HOMEキーのKeyDownイベントを取得できないようです。 HOMEキーをキャプチャして、同じ画面に次のコードで表示させることができます

@Override
public void onAttachedToWindow() {
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);

    super.onAttachedToWindow();
}
3
追加された
他の選択肢はありますか?
追加された 著者 Monali,
私もそれを探していた:Upvote
追加された 著者 Tofeeq,
AFAIKホームキーは、アプリケーションの唯一のエスケープポイントです。私たちは特定の出来事を得ることができません。あなたはアプリケーションの設計を少し変更する必要があります
追加された 著者 Dinesh Prajapati,
これは4.0以降は動作しません。この投稿の最後のコメント: groups.google.com/forum /#!topic/android-developers/trRI99-Hs‌ zQ
追加された 著者 japino,

実際にはホームボタンにオーバーライドする必要があります:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {

    Intent new(this, login);
    start(intent);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
0
追加された
KEYCODE_BACKは、ホームボタンではなく戻るボタンです。
追加された 著者 ggurov,