【问题标题】:Navigate to activity by back button doesn't call onstart()通过后退按钮导航到活动不会调用 onstart()
【发布时间】:2013-09-07 09:37:02
【问题描述】:

我有一个活动 (A),我需要在活动对用户可见后设置一些文本,第一次导航到活动时一切正常,但是当我从 (A) 导航到活动 (B) 并按回按钮,它返回(A)按钮没有调用(A)的onstart。这是什么问题?

【问题讨论】:

  • 能否请您向我们展示一些相关的代码和 logcat 条目(如果相关)
  • 你确定吗?因为据我所知(以及您提到的流程),它必须调用您的活动 AonRestartonStartonResume
  • 是的,我敢肯定,在 Google 文档中,当活动对用户可见时会调用 onstart

标签: android android-activity onstart


【解决方案1】:

后退按钮是导航到活动堆栈中的前一个活动,该活动已创建,因此将调用其 onResume 方法。所以你可以在 onResume() 中做你想做的事。

如果您的活动必须创建新实例,请执行以下操作: 如果您在活动 A 和 B 上,请调用 A.finish() 以便它从活动堆栈中丢弃 A,并在 B 上覆盖 backPressed 并创建 A 的新实例。

@Override
public void onBackPressed() {
   Intent i= new Intent(this, A.class);
   i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   this.finish();
   startActivity(i);
}

【讨论】:

  • 在活动 B 上按下后退按钮将在活动 A 上引发 onRestart 和 onStart。您的建议与问题不同
  • 当活动对用户可见时调用onstart,之后如果它存在于堆栈中则调用onresume
猜你喜欢
  • 2021-03-21
  • 1970-01-01
  • 2016-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多