Reputation: 1044
I have an issue about activity lifecycle. I navigate between two trivial activities, A and B. A is the parent of B.
<activity
android:name=".BActivity"
android:label="@string/title_activity_b"
android:parentActivityName=".AActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="de.example.AActivity" />
</activity>
In the activity classes themself i do absolutely nothing, except overriding the lifecycle methods for debug purposes and starting the next activity.
Activity A:
public class A extends Activity {
int itemId;
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "onStart");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d(TAG, "onRestart");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume");
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "onPause");
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
Log.d(TAG, " ------------- ");
Log.d(TAG, "onCreate");
itemId = getItemExampleItemId();
Button goToActivityB = (Button)findViewById(R.id.goto_activity_b);
goToActivityB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(AActivity.this, BActivity.class);
intent.putExtra("extraMessage", itemId);
startActivity(intent);
}
});
}
}
Activity B:
public class BActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
}
}
if I navigate from A to B and back, the logcat shows:
D/AActivity﹕ -------------
D/AActivity﹕ onCreate
D/AActivity﹕ onStart
D/AActivity﹕ onResume
D/AActivity﹕ onPause
D/AActivity﹕ onStop
D/AActivity﹕ onDestroy
D/AActivity﹕ -------------
D/AActivity﹕ onCreate
D/AActivity﹕ onStart
D/AActivity﹕ onResume
D/AActivity﹕ onPause
D/AActivity﹕ onStop
D/AActivity﹕ onDestroy
D/AActivity﹕ -------------
D/AActivity﹕ onCreate
D/AActivity﹕ onStart
D/AActivity﹕ onResume
D/AActivity﹕ onPause
D/AActivity﹕ onStop
D/AActivity﹕ onDestroy
D/AActivity﹕ -------------
D/AActivity﹕ onCreate
D/AActivity﹕ onStart
D/AActivity﹕ onResume
D/AActivity﹕ onPause
D/AActivity﹕ onStop
D/AActivity﹕ onDestroy
D/AActivity﹕ -------------
...
Has anybody an idea whats the problem?
Upvotes: 1
Views: 261
Reputation: 3493
You can for example achieve that by setting :
<activity
android:name=".ActivityA"
android:launchMode="singleTask" />
in your AndroidManifest.
For more Info look at the documentation
Upvotes: 1