Why does the main activity restart again after its

2019-07-28 01:30发布

The application works well in Android 2.3.5 But it does not work as desired in Nexus 4 (Android 4.2.2).

The application is: In the onCreate of main activity, it calls another activity through intent.

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
}

Now with Nexus 4, after it finishes the intent of AndroidVideoCapture, it returns back to the begining of the onCreate, "setContentView(R.layout.activity_main);". So the intent restarts again and again.

Why?

2条回答
霸刀☆藐视天下
2楼-- · 2019-07-28 01:53

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.

查看更多
你好瞎i
3楼-- · 2019-07-28 02:09

You can check if you have enabled 'Don't Keep Activities' in the developer options on the nexus 4 device. If checked, Disable that. This is an option available only since 4.0 and this is the reason behind your parent activity being 'recreated'.

查看更多
登录 后发表回答