我有两个活动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,并传递selectedMenuIndex
A1.show(this,selectedMenuIndex);
答案 0 :(得分:0)
如果你的活动已经完成(),那么你不会再避免再次通过onCreate() - 但是没有必要担心这一点。只需让你的onCreate()检查其intent extras的内容,如果没有,那么请遵循你的默认初始化,但是如果有额外的,请让它们携带足够的状态数据,这样你就可以回到以前的状态。
答案 1 :(得分:0)
如果要保存活动状态并通过多次onCreate()调用保持活动状态,则可以使用Bundle对象。您可以在onSaveInstanceState()中保存到Activity的Bundle,然后在onCreate()中重新加载它。请查看http://developer.android.com/reference/android/app/Activity.html和http://developer.android.com/reference/android/os/Bundle.html。