【问题标题】:Do not kill the activity on back key pressed不要杀死按下后退键的活动
【发布时间】:2019-01-02 11:23:37
【问题描述】:

我有两个 Activity A 和 B。

  1. 已启动活动 A。
  2. 已启动活动 A ---> 活动 B
  3. 在按下 Backey 时,Activity B 正在破坏并导航到 A。

我不想破坏 Activity B,当我再次从 A 导航到 B 时,在堆栈中维护以重用相同的 Activity。

实际: Activity B 在 webview oncreate 中加载 URL,每次创建并重新加载 URL。

预期: 它应该通过不创建来启动 Activity A 到 Activity B,并且不应该再次重新加载。

【问题讨论】:

标签: android android-activity


【解决方案1】:

试试这个解决方案

@Override
public void onBackPressed() {
this.startActivity(new Intent(YourActivity.this,ActivityA.class));  
}

覆盖 ActivityB 中的 onBackPressed(),然后启动 Activity A

【讨论】:

  • 在这种情况下导航到 Activity A,但是当我再次导航到 Activity B 时,URL 会在 webview 中重新加载。
【解决方案2】:
@Override
public void onBackPressed() {
  moveTaskToBack(true);
}

它会将您的活动移至 Stack,并在您返回时保留在那里。 更多详情请看here

【讨论】:

  • 我不想隐藏活动。它应该导航到 Activity A 而不破坏 Activity B 以重用它。
【解决方案3】:

从 Activity B,下面的代码不会破坏 Activity B 并导航到 A

@Override
public void onBackPressed() {
this.startActivity(new Intent(ActivityB.this,ActivityA.class));  
}

从 Activity A 导航到 B,将下面的标志设置为不会重新创建 Activity 的意图。

setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT) 

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多