アクティビティ A からアクティビティ B を起動しました。ホーム キーを押したときにランチャーではなくアクティビティ A に戻りたいのですが、どのように実装すればよいですか?
同様のケースを見つけました.LockPatternKeyguardViewは、緊急ダイヤラーを起動し、ホームキーを押すと、再びLockPatternKeyguardViewに戻ることができます.これを行う方法は?
アクティビティ A からアクティビティ B を起動しました。ホーム キーを押したときにランチャーではなくアクティビティ A に戻りたいのですが、どのように実装すればよいですか?
同様のケースを見つけました.LockPatternKeyguardViewは、緊急ダイヤラーを起動し、ホームキーを押すと、再びLockPatternKeyguardViewに戻ることができます.これを行う方法は?
ホームボタンの動作をオーバーライドすることはできません。オーバーライドすると、ユーザーがアプリを終了しないようにすることができます。これは、Androidでは許可されません。
ホーム ボタンはオーバーライドするのが非常に危険なボタンです。そのため、Android では、[戻る] ボタンと同じようにその動作をオーバーライドすることはできません。
ホームボタンが押されると、アクティビティで onStop メソッドが呼び出されます。したがって、できることは、finish(); を追加することです。onStop メソッドでアクティビティを破棄します。最終的には、アクティビティが終了したことを確認するために onDestroy メソッドが呼び出されます。
ボタンを押すと、アクティビティを開始できます。そのためには、アクティビティのアクションを HOME として宣言する必要があります。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
しかし、これには次のような欠点があります。
2番目のケースでは、ホームボタンを押したときにアクティビティをデフォルトのアクティビティにすることができますが、他のアプリを起動したいときに非常に便利なデフォルトのホーム画面が起動しません. したがって、ホームボタンを処理しないことを常にお勧めします。
また、他のキーイベント (Back キー、Menu キーなど) と同じように Home キーを処理することはできません。
case R.id.home:
Intent i = new Intent(this,Aactivity.class);
startActivity(i);
return true;
私が提示する唯一の方法を知っていました....
ホーム ボタンを押すことは、ユーザーがアプリを終了することを望んでいることを意味し、ユーザーを維持するためにそれをオーバーライドするべきではありません。また、停止したアプリからユーザーを解放できるのはホーム ボタンだけです。メニュー項目を「ホーム」にするか、戻るボタンをオーバーライドすることを検討してください。
ホームボタンが押されると、アクティビティは onStop() 状態になります。そのため、アクティビティ B で onStop() メソッドをオーバーライドし、アクティビティを終了します。以下のように、
protected void onStop() {
finish();
super.onStop();
}