好吧,我有点困惑。我有两个活动:活动A和活动B,我可以很容易地从A导航到B.一旦到了B,当我按下物理后退按钮时,活动B就会死掉,我就回到了我在A处离开的地方。但是,如果我调用onBackPressed(),则活动B会死,但是活动A是从头开始创建的( onCreate()调用。)
我可以理解,我不能依赖活动A保持活着等,但每次按下后退按钮都会起作用,而onBackPressed()每次都会失败。我假设onBackPressed并按下按钮做了同样的事情。
感谢所有帮助!
启动活动B:
Intent i = new Intent(getActivity(), MailActivity.class);
Mail m = mMails.get(position);
i.putExtra(MailFragment.EXTRA_MAIL, m);
Log.d(TAG, "Mail Packed");
startActivity(i);
尝试从B回到A:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.home:
getActivity().onBackPressed();
return false;
default:
return super.onOptionsItemSelected(item);
}
}
答案 0 :(得分:2)
就我而言,我没有在true
中返回onOptionsItemSelected
。这导致父母活动onCreate()
被调用。
在return true
中添加onOptionsItemSelected
后,我可以看到预期的行为。
答案 1 :(得分:0)
您可能希望查看执行context.startActivity(intent);
您可以设置意图标记
intent.setFlags(FLAGS_GO_HERE | ANOTHER_FLAG_IF_YOU_WANTED);
更多详情:http://developer.android.com/guide/components/tasks-and-back-stack.html