去两个活动回来?

时间:2011-07-17 05:33:46

标签: android android-activity

我有这个活动序列: Avtivity01 => Avtivity02 => Avtivity03

点击按钮后,您可以从Avtivity01转到Avtivity02

点击按钮后,您可以从Avtivity02转到Avtivity03

-

点击按钮后,我想从Activity03转到Activity01 DIRECTLY

-

注意:

我不想使用Intent,因为我希望Activity01 ,就像我按下Activity02 后面的按钮

请问怎么做?

6 个答案:

答案 0 :(得分:40)

为什么不能使用Intent?单击按钮时可以使用FLAG_ACTIVITY_CLEAR_TOP修改:如果您要保留Activity的原始实例,可以将此标记与FLAG_ACTIVITY_SINGLE_TOP结合使用。

您是否曾希望能够按下Activity03中的按钮返回Activity02?如果您总是希望它返回到Activity01,您可以在清单中的Activity02上使用android:noHistory="true",只需在Activity03上调用finish()

答案 1 :(得分:4)

您可以使用意图返回多个屏幕,并使用标记来阻止返回到同一屏幕:

Intent gotoScreenVar = new Intent(goFromScreenCls.this, goToScreenCls.class);

gotoScreenVar.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(gotoScreenVar);

答案 2 :(得分:1)

link有好文章。这会对你有所帮助。顺便说一句,您可以使用FLAG_ACTIVITY_REORDER_TO_FRONT来解决您的问题。

答案 3 :(得分:1)

我遇到了同样的问题,

简短的答案是将此行添加到意图中。

intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

长答案是:

我有MainActivitySecondActivityThirdActivity,我想做的是从SecondActivity打开MainActivity,然后从{{ 1}},并且我想单击ThirdActivitySecondActivity中的两个按钮来关闭ThirdActivitySecondActivity而不调用新的ThirdActivity,我希望它能像我回到它不会创建新的按钮。最需要的是,如果我需要更改MainActivity中的某些选项,则使ThirdActivity中的按钮功能正常,恢复到SecondActivity。因此,在启动SecondActivityfinish();清单中的SecondActivity之类的任何其他解决方案之后,我无法在{{1}中调用ThirdActivity,因为这些解决方案会杀死{{ 1}},我无法返回它的“后退”按钮。

所以这个标志为我android:noHistory="true"

解决了问题
  

FLAG_ACTIVITY_REORDER_TO_FRONT

     

如果在传递给Context.startActivity()的Intent中进行了设置,则此标志将使已启动的活动(如果已在运行)置于其任务的历史记录堆栈的最前面。

转到参考here

因此,当我单击SecondActivity中的按钮时,我尝试使用此代码从SecondActivity返回我的FLAG_ACTIVITY_REORDER_TO_FRONT。希望对您有帮助。

MainActivity

答案 4 :(得分:-2)

您可以覆盖活动3

上的后退按钮
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        startActivity(Activity3.this,Activity1.class);
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

答案 5 :(得分:-3)

只需一行即可使用 在致电您的第三个活动后,请致电finish()到下一行。它会起作用。

例如。
在您的Activity02中

Intent thirdActivity = new Intent(this,Activity03.class);
startActivity(thirdActivity);
finish();