再次调用后保持活动状态

时间:2011-06-24 15:51:07

标签: android

我有两个活动A1和A2,在触发一些事件时,我从A1调用A2(通过意图)。 现在在A2内部,我正在发射一些事件,并且基于我再次呼叫A1并通过意图传递数据。

现在的问题是当A1从A2调用数据时,A1活动加载自身带有新状态但我想在A1首次加载时保持其旧状态。间接我不想打电话给创建。

到目前为止,我已尝试在A1活动中使用以下代码,它是A1中的一个静态方法,加载自身

public static void show(Context context , int index)    
    {
          final Intent intent = new Intent();
          intent.setAction(MC_MY_ACTION);
          intent.putExtra("routeIndex", index);
          context.startActivity(intent);

    }
来自A2的

我从onOptionsItemSelected调用A1,并传递selectedMenuInde​​x

A1.show(this,selectedMenuIndex);     

2 个答案:

答案 0 :(得分:0)

如果你的活动已经完成(),那么你不会再避免再次通过onCreate() - 但是没有必要担心这一点。只需让你的onCreate()检查其intent extras的内容,如果没有,那么请遵循你的默认初始化,但是如果有额外的,请让它们携带足够的状态数据,这样你就可以回到以前的状态。

答案 1 :(得分:0)

如果要保存活动状态并通过多次onCreate()调用保持活动状态,则可以使用Bundle对象。您可以在onSaveInstanceState()中保存到Activity的Bundle,然后在onCreate()中重新加载它。请查看http://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/os/Bundle.html