1

onKeyDown、onBackPressed が起動しないのはどのような場合ですか?

私の場合、今後のすべてのビュー/アクティビティが保存されるバックグラウンドで、ActivityGroup を持つ TabActivity があります。ActivityGroup は、ビューの追加と削除を処理します。したがって、メイン タブで新しいアクティビティを開始すると、ActivityGroup の startChildActivity メソッドが呼び出されます。

public void startChildActivity(String viewId, Intent intent) {
    Window window = getLocalActivityManager().startActivity(viewId, intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
    if(window != null) {
        history.add(new HistoryContainer(viewId));
        setContentView(window.getDecorView());
    }
}

この方法でアクティビティ ダミーを開始すると、前述の onKeyDown や onBackPressed などの keyEvents が起動しなくなります。何が起こっているのかというと、アプリが閉じています。

public class Dummy extends Activity {
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dummy);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    MazdaGroup.group.back();
    return true;
}

@Override
public void onBackPressed() {
    MazdaGroup.group.back();
}

}

喜んでお手伝いします!

4

0 に答える 0