【发布时间】:2015-09-14 22:31:16
【问题描述】:
好吧,我有点困惑。我有两个活动:活动 A 和活动 B,我可以很容易地从 A 导航到 B。当我在 B 按下物理后退按钮时,Activity B 停止运行,然后我又回到了 A 停止的位置。但是,如果我改为调用 onBackPressed(),Activity B 停止运行,但 Activity A 是从头开始创建的(onCreate( ) 调用)。
我可以理解,我不能依赖 Activity 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);
}
}
【问题讨论】:
-
您不应该明确调用 onBackPressed(),我很确定这不是鼓励的行为。您可能不应该这样做。您调用该 API 有什么特别的原因吗?你还有什么其他选择。
-
@JoxTraex 好吧,我尝试传递标记的意图,但无法模仿硬件后退按钮功能。按返回可以正常工作,按主页按钮然后返回应用程序工作正常(一切如预期)但返回按钮重新启动 Activity。