如何打开以前的Activity实例并重新创建它?

时间:2014-10-10 14:04:02

标签: android android-intent android-activity activity-stack

基本上我需要的是每次调用Activity将实例移到前面而不破坏其他活动时重新创建一个startActivity()

例如,如果我有活动堆栈

  

A-> B-> C-> D

从D我想打开B,我目前使用的标志是FLAG_ACTIVITY_REORDER_TO_FRONT,它将Activity堆栈保持在这种状态:A->C->D->B。但是,活动堆栈中的顺序是完美的,使用该标志不会重新创建Activity并调用onNewIntent()

因为Activity的复杂性我不想重构很多东西,我想要的是从头开始重新创建B(必须调用onCreate())而不是执行我的逻辑onNewIntent()方法。活动堆栈应具有与使用FLAG_ACTIVITY_REORDER_TO_FRONT时相同的状态。任何的想法?非常感谢您的帮助。 :)

1 个答案:

答案 0 :(得分:0)

如果您的所有工作都在onCreate()中进行,并且您希望在onNewIntent()内使用相同的内容,那么您可以通过一个简单的重复因子来实现。您的所有代码都在setupActivity()电话中。

public void onCreate (Bundle savedInstanceStateF) 
{
   super.onCreate (savedInstanceStateF);
   setupActivity();
}

public void onNewIntent(Intent intentF)
{
   super.onNewIntent(intentF);
   setupActivity();
}