我有一个 Android 选项卡式应用程序,它显示音乐图表(例如 ChartActivity),每个图表依次显示音乐曲调列表(例如 EntryActivity)。点击音乐曲调的每个条目将启动,例如,YouTube 应用程序(默认操作)。也就是说,在 EntryActivity 的 list.setOnItemClickListener 中,我调用:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(selectedSongUrl));
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
parentActivity.startChildActivity("YouTube", intent);
(是的,我使用 ActivityGroup 和 TabActivity。)
问题是,当我从 YouTube 屏幕中选择后退按钮时,活动视图不会返回到 EntryActivity,而是返回到 ChartActivity。我想,这是因为我无法在 YouTube 屏幕中覆盖 onKeyUp 和 onKeyDown 以便我可以进一步将事件传递给父活动:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR
return true;
}
return super.onKeyDown(keyCode, event);
}
// Overrides the default implementation for KeyEvent.KEYCODE_BACK
// so that all systems call onBackPressed().
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
parentActivity.onBackPressed();
return true;
}
return super.onKeyUp(keyCode, event);
}
有什么方法可以让 EntryActivity 知道 Intent.ACTION_VIEW 发送的回调事件?