1

在哪些情况下 onKeyDown、onBackPressed 不会触发?

在我的情况下,我有一个 TabActivity 和 ActivityGroup 在后台存储所有即将到来的视图/活动。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());
    }
}

如果我现在以这种方式启动 Activity Dummy,则提到的 keyEvents(如 onKeyDown 或 onBackPressed)不再触发。正在发生的事情是应用程序正在关闭。

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