1

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

应用是:在主activity的onCreate中,通过intent调用另一个activity。

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);”。所以意图一次又一次地重新启动。

为什么?

4

2 回答 2

3

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

于 2013-05-07T19:15:31.607 回答
2

Try adding

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 not being null means the activity is being recreated.

于 2013-05-07T16:49:36.660 回答