это мой первый пост, и я написал его после сканирования некоторых «вероятных предлагаемых» решений для проблем «onBackPressed» и «onKeyDown». Думаю, они не подходят для моей проблемы.onBackPressed не вызван в TabActivity
Но просветите меня, если я ошибаюсь (извините за это в случае).
Хорошо, вот моя простая проблема.
У меня 2 Активности: A: Starter активность (нормальная работа) B: MainMenu активность (TabActivity)
Всплеск активности (А) делает некоторые инициализации вещи и некоторые чеки. Если он выполняется, он просто называет намерение для основного меню Acitvity (B).
Деятельность B просто заполняет tabHost для 4 вспомогательных операций.
Хорошо, пока все в порядке. Но
Я хочу, чтобы активность B реагировала на кнопку BACK. Он не должен позволять пользователю вернуться к экрану запуска стартера, но вместо этого должен отправить приложение на задний план (нажата кнопка дома).
Но деятельность Б никогда не реагирует на это. Никакой вывод logcat не записывается.
Это мой код деятельность В.
public class StartScreenTab extends TabActivity {
private final static String TAG = StartScreenTab.class.getSimpleName();
private MyTabHostWrapper tabHost;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initTab();
}
private void initTab() {
Log.i(TAG, "init Main Tabs...");
tabHost = new MyTabHostWrapper(this);
// tab Start
tabHost.addNewTabSpec("tab-start", R.string.app_name,
R.drawable.ic_tab_start, StartScreen.class);
// tab Karte
tabHost.addNewTabSpec("tab-karte", R.string.umkreis_activity_name,
R.drawable.ic_tab_karte, UmkreisActivity.class);
// tab Liste
tabHost.addNewTabSpec("tab-liste", R.string.liste_activity_name,
R.drawable.ic_tab_liste, ListeActivity.class);
// tab Settings
tabHost.addNewTabSpec("tab-prefs", R.string.menu_settings,
R.drawable.ic_tab_preferences, MyPrefsActivity.class);
tabHost.setFontColor("#FFFFFF");
}
@Override
public void onDestroy(){
Log.i(TAG, "onDestroy called.");
super.onDestroy();
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.i(TAG, "KEY 'back' released");
onBackPressed();
return true;
}
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.i(TAG, "KEY 'back' pressed");
onBackPressed();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
super.onBackPressed();
Log.i(TAG, "BACK pressed");
moveTaskToBack(true);
return;
}
}
Я вижу выход LogCat из инициализации и от OnDestroy. Но ничего из onKeyDown, onKeyUp и onBackPressed.
Вы можете мне помочь? Спасибо.