私は音楽チャート(例えばChartActivity)を表示するAndroidタブ付きアプリケーションを持っています。それぞれのアプリケーションは、音楽曲のリスト(EntryActivityなど)を表示します。音楽曲の各エントリをタップすると、たとえばYouTubeアプリが起動します(デフォルトの操作)。それはEntryActivityのlist.setOnItemClickListenerで、私が呼び出しを行う、次のとおりです。Android:Intent.ACTION_VIEWのonKeyUpとonKeyDownをオーバーライド
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(selectedSongUrl));
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
parentActivity.startChildActivity("YouTube", intent);
(はい、私はActivityGroupとTabActivityを使用しています。)
問題は時にYouTubeの画面から、私はタブのバックボタンということです、アクティブなビューはEntryActivityではなくChartActivityに戻ります。
@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がテントから送信されたコールバックイベントをお知らせする方法はあります:私は、私はさらに親アクティビティにイベントを渡すことができるように私はYouTubeの画面にonKeyUpを上書きし、onKeyDownことができなかったためである、と思います。 ACTION_VIEW?