onBackPressed隐藏不破坏活动
问题描述:
我知道如何取消背部按键,使活动/主窗口保持可见: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