我有一个关于活动生命周期的问题。我在两个琐碎的活动A和B之间导航.A是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>
在活动类中,我自己什么都不做,除了为调试目的覆盖生命周期方法并开始下一个活动。
活动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);
}
});
}
}
活动B:
public class BActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
}
}
如果我从A导航到B并返回,则logcat显示:
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﹕ -------------
...
有人知道这个问题吗?
答案 0 :(得分:1)
您可以通过设置:
来实现这一目标 <activity
android:name=".ActivityA"
android:launchMode="singleTask" />
在您的AndroidManifest中。
有关详细信息,请查看documentation