0

アクティビティ A からアクティビティ B を起動しました。ホーム キーを押したときにランチャーではなくアクティビティ A に戻りたいのですが、どのように実装すればよいですか?

同様のケースを見つけました.LockPatternKeyguardViewは、緊急ダイヤラーを起動し、ホームキーを押すと、再びLockPatternKeyguardViewに戻ることができます.これを行う方法は?

4

6 に答える 6

1

ホームボタンの動作をオーバーライドすることはできません。オーバーライドすると、ユーザーがアプリを終了しないようにすることができます。これは、Androidでは許可されません。

于 2012-10-15T08:40:40.763 に答える
0

ホーム ボタンはオーバーライドするのが非常に危険なボタンです。そのため、Android では、[戻る] ボタンと同じようにその動作をオーバーライドすることはできません。

ホームボタンが押されると、アクティビティで onStop メソッドが呼び出されます。したがって、できることは、finish(); を追加することです。onStop メソッドでアクティビティを破棄します。最終的には、アクティビティが終了したことを確認するために onDestroy メソッドが呼び出されます。

于 2012-10-15T08:33:28.843 に答える
0

ボタンを押すと、アクティビティを開始できます。そのためには、アクティビティのアクションを HOME として宣言する必要があります。

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.HOME" /> 
</intent-filter>

しかし、これには次のような欠点があります。

  1. ホームボタンを押すとセレクターが表示されます。これにより、起動するアクティビティを決定できます。デフォルトのランチャー アプリにも同じアクション (HOME) があるため、どのアクティビティを起動するかを尋ねられます。
  2. ユーザーがホームボタンを押したときに、アクティビティをデフォルトのアクティビティにすることができます。ホームボタンを押した後に選択ダイアログが表示されたら、選択ダイアログにチェックボックスが表示されていることを確認するだけで実行できます。

2番目のケースでは、ホームボタンを押したときにアクティビティをデフォルトのアクティビティにすることができますが、他のアプリを起動したいときに非常に便利なデフォルトのホーム画面が起動しません. したがって、ホームボタンを処理しないことを常にお勧めします。

また、他のキーイベント (Back キー、Menu キーなど) と同じように Home キーを処理することはできません。

于 2012-10-15T08:44:23.663 に答える
0
case R.id.home:                     
        Intent i = new Intent(this,Aactivity.class);
        startActivity(i);
        return  true;    

私が提示する唯一の方法を知っていました....

于 2012-10-15T08:46:59.970 に答える
0

ホーム ボタンを押すことは、ユーザーがアプリを終了することを望んでいることを意味し、ユーザーを維持するためにそれをオーバーライドするべきではありません。また、停止したアプリからユーザーを解放できるのはホーム ボタンだけです。メニュー項目を「ホーム」にするか、戻るボタンをオーバーライドすることを検討してください。

于 2012-10-15T08:47:30.047 に答える
0

ホームボタンが押されると、アクティビティは onStop() 状態になります。そのため、アクティビティ B で onStop() メソッドをオーバーライドし、アクティビティを終了します。以下のように、

 protected void onStop() {
        finish();
        super.onStop();
    }
于 2012-10-15T09:16:04.900 に答える