我可以强制Android后退按钮在活动堆栈中后退两步吗?
我知道我可以覆盖我可以强制Android后退按钮在活动堆栈中后退两步吗?,android,android-activity,Android,Android Activity,我知道我可以覆盖onKeyDown方法,但我想回去做这件事,就两次 我是这样想的: A -> B -> C A、 B、C活动 由于第一个onKeyDown()将在C中执行,第二个应该在B中执行,因此不能执行两次back 我不知道你为什么要这么做,但这里有一些选择 使用: 也许您的C活动正在做一些不需要视图的事情,这就是为什么您要返回两次 使用意图。比如: Intent intent = new Intent(C.this, A.class); startActivity(inten
onKeyDown
方法,但我想回去做这件事,就两次 我是这样想的:
A -> B -> C
A、 B、C活动
由于第一个onKeyDown()
将在C中执行,第二个应该在B中执行,因此不能执行两次back
我不知道你为什么要这么做,但这里有一些选择
Intent intent = new Intent(C.this, A.class);
startActivity(intent);
FirstActivity
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);
int REQUEST_CODE = 123
Intent intent = new Intent(SecondActivity.this, ThirdActivity.class);
startActivityForResult(intent, REQUEST_CODE);
@Override
public void onBackPressed() {
// Semi ugly way of supporting that back button takes us back two activites instead of the usual one.
setResultOkSoSecondActivityWontBeShown();
finish();
}
private void setResultOkSoSecondActivityWontBeShown() {
Intent intent = new Intent();
if (getParent() == null) {
setResult(Activity.RESULT_OK, intent);
} else {
getParent().setResult(Activity.RESULT_OK, intent);
}
}
第二活动
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);
int REQUEST_CODE = 123
Intent intent = new Intent(SecondActivity.this, ThirdActivity.class);
startActivityForResult(intent, REQUEST_CODE);
@Override
public void onBackPressed() {
// Semi ugly way of supporting that back button takes us back two activites instead of the usual one.
setResultOkSoSecondActivityWontBeShown();
finish();
}
private void setResultOkSoSecondActivityWontBeShown() {
Intent intent = new Intent();
if (getParent() == null) {
setResult(Activity.RESULT_OK, intent);
} else {
getParent().setResult(Activity.RESULT_OK, intent);
}
}
(为了使这一教学法更具教育意义,下面有更多的活动代码)
第三十届
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);
int REQUEST_CODE = 123
Intent intent = new Intent(SecondActivity.this, ThirdActivity.class);
startActivityForResult(intent, REQUEST_CODE);
@Override
public void onBackPressed() {
// Semi ugly way of supporting that back button takes us back two activites instead of the usual one.
setResultOkSoSecondActivityWontBeShown();
finish();
}
private void setResultOkSoSecondActivityWontBeShown() {
Intent intent = new Intent();
if (getParent() == null) {
setResult(Activity.RESULT_OK, intent);
} else {
getParent().setResult(Activity.RESULT_OK, intent);
}
}
第二次活动(再次)
|*|返回一个屏幕或结束活动:
|*|返回多个屏幕:
Intent gotoScreenVar = new Intent(goFromScreenCls.this, goToScreenCls.class);
gotoScreenVar.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(gotoScreenVar);
您可以使用intent返回到需要的屏幕,并使用标志防止返回到同一屏幕:
Intent gotoScreenVar = new Intent(goFromScreenCls.this, goToScreenCls.class);
gotoScreenVar.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(gotoScreenVar);
有一个关于使用后退键的问题。只需将其设置为返回到您想要的任何活动。