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();
}
}
喜んでお手伝いします!