这是我的第一篇文章,我在扫描“onBackPressed”和“onKeyDown”问题的“可能提议的”解决方案之后编写了它。我认为他们不适合我的问题。onBackPressed未在TabActivity中调用
但是,如果我错了,让我知道(对不起,以防万一)。
好的,这是我的简单问题。
我有2个activites: 甲:起动机活性(正常活动) B:MainMenu的活性(TabActivity)
飞溅活性(A)做一些初始化东西和一些检查。如果满意,它只是调用主菜单Acitvity(B)的意图。
活动B只是填充4个子活动的tabHost。
好吧,到目前为止,它都很好。但是
我希望活动B在BACK按钮上作出反应。它不应该让用户回到初始启动画面,而应该将应用程序发送到后台(按下主页按钮)。
但是活动B从来没有对它做出反应。没有写入logcat输出。
这是我的活动B.
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;
}
}
的代码,我可以看到,从init,并从该的onDestroy输出logcat中。但是onKeyDown,onKeyUp和onBackPressed都没有。
你能帮助我吗?谢谢。