为什么主要活动在被调用的意图完成后再次重启(Android 4.2.2)?

时间:2013-05-07 16:47:55

标签: android android-intent nexus-4

该应用程序在Android 2.3.5中运行良好 但它在Nexus 4(Android 4.2.2)中无法正常工作。

申请表是: 在主要活动的onCreate中,它通过意图调用另一个活动。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final Intent launchIntent = new Intent(MainActivity.this, AndroidVideoCapture.class);
    launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
    startActivity(launchIntent);

    // I add a button dynamically here
}

现在使用Nexus 4,在完成AndroidVideoCapture的意图后,它将返回onCreate的开头,“setContentView(R.layout.activity_main);”。 所以意图一次又一次地重新启动。

为什么?

2 个答案:

答案 0 :(得分:3)

您可以检查是否在nexus 4设备的开发者选项中启用了“不要保留活动”。如果选中,请禁用它。这是一个仅在4.0之后可用的选项,这就是您的父活动被“重新创建”的原因。

答案 1 :(得分:2)

尝试添加

if (savedInstanceState == null) {
    final Intent launchIntent = new Intent(MainActivity.this, AndroidVideoCapture.class);
    launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
    startActivity(launchIntent);
}

savedInstanceState不为空意味着正在重新创建活动。