该应用程序在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);”。 所以意图一次又一次地重新启动。
为什么?
答案 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
不为空意味着正在重新创建活动。