У меня есть Android-приложение с вкладками, которое отображает музыкальные чарты (скажем, ChartActivity), каждая из которых, в свою очередь, отображает список музыкальных мелодий (скажем, EntryActivity).Нажатие на каждую запись музыкальных мелодий запустит, например, приложение YouTube (действия по умолчанию).То есть в list.setOnItemClickListener EntryActivity я выполняю вызовы:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(selectedSongUrl));
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
parentActivity.startChildActivity("YouTube", intent);
(Да, я использую ActivityGroup и TabActivity.)
Проблема заключается в том, что при нажатии кнопки «Назад»на экране YouTube активный вид возвращается не в EntryActivity, а в ChartActivity.Я полагаю, это потому, что я не смог переопределить onKeyUp и onKeyDown на экране YouTube, чтобы я мог передать событие родительскому действию:
@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