Search code examples
androidandroid-intentnexus-4

Why does the main activity restart again after its called intent finished (Android 4.2.2)?


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?


Solution

  • 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.