我知道如何取消后退按键,以便活动/主窗口保持可见:
public void onBackPressed() {
return;
}
Run Code Online (Sandbox Code Playgroud)
我的目的是隐藏活动,但是,如果没有完成它,你如何在onBackPressed事件中做到这一点?
即我想获得onPause(),但不会唤起onBackPressed()默认行为,本质上调用finish().另一种说法是我想模仿onUserLeaveHint()?
任何帮助赞赏!
net*_*ein 54
如果您想模仿特定活动上的"主页"按钮,请执行以下操作:
API 5以下:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
API 5以上和之上:
@Override
public void onBackPressed() {
moveTaskToBack(true);
}
Run Code Online (Sandbox Code Playgroud)
它将把任务移动到背景..当你返回时,它将是原样.
您可以在此处查看有关此内容的更多信息:覆盖后退按钮以充当主页按钮
Xar*_*mer 18
如果您想模仿特定活动的"主页"按钮:
第一种方法:
@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);
}
Run Code Online (Sandbox Code Playgroud)
第二种方法:
@Override
public void onBackPressed() {
moveTaskToBack(true);
}
Run Code Online (Sandbox Code Playgroud)
如果您想在不破坏当前情况的情况下移至上一个活动:
@Override
public void onBackPressed() {
startActivity(new Intent(CurrentActivity.this, DestinationActivity.class);
}
Run Code Online (Sandbox Code Playgroud)
现在,如果你想打开背景中的活动,可以从任何活动中获取.我将CurrentActivity命名为.你可以在任何地方调用它.比如......它会采取这种行为并把它放到堆栈顶部.并在你离开的地方打开它.
Intent intent = new Intent(FromAnyActivity.this, CurrentActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
标志:
FLAG_ACTIVITY_REORDER_TO_FRONT :从堆栈重新排序活动
FLAG_ACTIVITY_CLEAR_TOP :从顶部删除所有活动
| 归档时间: |
|
| 查看次数: |
30286 次 |
| 最近记录: |