我知道如何取消背部按鍵,使活動/主窗口保持可見:onBackPressed隱藏不破壞活動
public void onBackPressed() {
return;
}
我的目標是隱藏活動,但是,如果沒有完成它,怎麼辦你在onBackPressed事件中這樣做?
即我想得到儘可能onPause(),但不喚起onBackPressed()默認行爲,本質上調用finish()。另一種說法是,我想模仿onUserLeaveHint()?
任何幫助讚賞!
我知道如何取消背部按鍵,使活動/主窗口保持可見:onBackPressed隱藏不破壞活動
public void onBackPressed() {
return;
}
我的目標是隱藏活動,但是,如果沒有完成它,怎麼辦你在onBackPressed事件中這樣做?
即我想得到儘可能onPause(),但不喚起onBackPressed()默認行爲,本質上調用finish()。另一種說法是,我想模仿onUserLeaveHint()?
任何幫助讚賞!
如果你想模仿的具體活動的 「主頁」 按鈕,只是這樣做:
以下API 5:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
上邊以及API 5:
@Override
public void onBackPressed() {
moveTaskToBack(true);
}
它會將任務移到背景中..當您返回時,它將保持原樣。
你可以看到關於這個位置的詳細信息:Override back button to act like home button
那麼,如果沒有finish
這個活動,你就不能回到當前的堆棧。也許你可以發現onBackPressed()
,然後啓動主意圖在一個新的任務:
public void onBackPressed() {
Intent i = new Intent("android.intent.action.MAIN");
i.addCategory("android.intent.category.HOME");
i.addCategory("android.intent.category.DEFAULT");
i.addCategory("android.intent.category.LAUNCHER");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
return;
}
讓我知道是否可行。
如果不破壞你的活動中,你必須設置acitvity發射模式single_instance和使用moveTaskToBack(真)發送至後臺。
如果你想模仿的具體活動的 「主頁」 按鈕:
第1種方法:
@Override
public void onBackPressed() {
Log.d("CDA", "onBackPressed Called");
Intent setIntent = new Intent(Intent.ACTION_MAIN);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
}
第2種方法:
@Override
public void onBackPressed() {
moveTaskToBack(true);
}
如果你想在不破壞電流的情況下移至上一個活動:
@Override
public void onBackPressed() {
startActivity(new Intent(CurrentActivity.this, DestinationActivity.class);
}
現在從任何活動,如果你想打開後臺的活動。我叫CurrentActivity。你可以把它稱作任何形式......就像它將採取這種行動,並把它放在堆棧頂部。並在你離開的地方打開它。
Intent intent = new Intent(FromAnyActivity.this, CurrentActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
標誌:
FLAG_ACTIVITY_REORDER_TO_FRONT
:從堆棧
FLAG_ACTIVITY_CLEAR_TOP
:從頂部
我結束了這個夢幻般的單線解決方案! 'public void onBackPressed(){ \t moveTaskToBack(true); \t return; }' – Cel 2011-05-06 17:09:30
該方法在最新的API上可用,您當然也應該覆蓋它。 :-) – neteinstein 2011-05-06 17:10:39
嗨,這隱藏了我的整個應用程序,但我只想隱藏特定的活動不是一個完整的應用程序。 – 2015-07-22 11:16:37