我正在開發包含TabHost
一個應用程序,在這些標籤我有一個ActivityGroup
之一,從這個ActivityGroup
,我發動另一SubActivity
(讓我們說,我啓動了Activity
A),以及直到這一切都好。導航在的ActivityGroup活動之間
問題是,當我按下後退按鈕,則CurrentActivity(Activity
A)被破壞,但ParentActivity(該ActivityGroup
)不恢復,以及應用程序展示只是一個空窗與我的應用程序的標題( 「我的應用標題」)。
從我ActivityGroup
啓動Activity
A中的代碼是:
View view = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) .getDecorView();
this.setContentView(view);
和我在ActivityGroup
有overrided
方法onKeyDown
這樣的:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.i(TAG, "onKeyDown");
if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
Activity current = getLocalActivityManager().getCurrentActivity();
Log.i(TAG, current.getIntent().getStringExtra("id"));
current.finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
但似乎方法onKeyDown
永遠不會被調用,因爲ai沒有顯示日誌「onKeyDown」。
和logcat的顯示器只是這樣的:
01-05 11:04:38.012: W/KeyCharacterMap(401): No keyboard for id 0
01-05 11:04:38.012: W/KeyCharacterMap(401): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
我想是顯示ActivityGroup
當我Activity
A被破壞。
NB:我的應用水平是4: * 的Android 1.6 *,所以我不能override
方法onBackPressed()
謝謝大家的幫助
-----------------------------------編輯------------- ---------------------------
我已經加入我的onKeyDown
這樣的代碼我Activity
答:
@覆蓋 公共布爾的onkeydown(INT的keyCode,KeyEvent的事件){
if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
ParentActivity parentActivity = (ParentActivity) this.getParent();
parentActivity.onKeyDown(keyCode, event);
return true;
}
return super.onKeyDown(keyCode, event);
}
而且在我ParentActivity
,我有:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
Log.i(TAG, "onKeyDown");
int len = idOfSubActivities.size();
String idOfCurrentActivity = idOfSubActivities.get(len-1);
Activity currentActivity = getLocalActivityManager().getActivity(idOfCurrentActivity);
currentActivity.finish();
idOfSubActivities.remove(len - 1);
return true;
}
return super.onKeyDown(keyCode, event);
}
我得到了相同的結果,Activity
A被停止,但它仍然給我個空窗我的應用程序的標題,它不顯示我ActivityGroup
(ParentActivity
)
我會嘗試這個,感謝您的回覆:) – Houcine 2012-01-05 12:39:45
請看到我的編輯,我做了什麼,你告訴我,我得到了相同的結果,能否請您提供一些你提到的代碼有哪些?謝謝 – Houcine 2012-01-05 12:51:43
是的,給我幾個小時來抓住它。 (我在工作,我使用它的應用程序是在家裏)... – 2012-01-05 13:20:28