我通过调用startActivityForResult()
开始另一个活动,按下后退按钮后,我调用了之前的活动onCreate方法,因此重新创建了整个活动。
在调试时,我发现调用startActivityOnResult()
会自动调用
onPause()
onStop()
onDestroy()
当前活动的方法。这是正常的行为,因为我已经读过它只启动另一个活动的onPause()
方法。
这是我的代码:
@Override
public void onResume() {
super.onResume();
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onStop() {
super.onStop();
}
@Override
public void onDestroy() {
super.onDestroy();
}
public void showScore(View view) {
Intent i = new Intent(StartMultipleChoiceActivity.this, ScoreActivity.class);
i.putExtra("blockPosition", blockPosition);
int itemVisited=submittedAnswers.size();
i.putExtra("itemVisited", itemVisited);
int itemCorrect=correctAnswers.size();
i.putExtra("itemCorrect", itemCorrect);
startActivityForResult(i,1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
}
答案 0 :(得分:3)
onPause()
和onStop()
完全正常。只要您的活动不再具有前景输入(onPause()
)且不再可见(onStop()
),就会调用这些内容。
onDestroy()
只有在你以某种方式自己完成活动时才会被调用,或者如果你在一个单独的应用程序中启动一个活动,Android需要终止你自己的应用程序以释放RAM。
答案 1 :(得分:0)
我有下一个问题。我通过删除标志 FLAG_ACTIVITY_NEW_TASK
解决了这个问题