【问题标题】:Switching Activities in Android在 Android 中切换 Activity
【发布时间】:2014-02-15 23:18:02
【问题描述】:

我有四个活动 Activity1、Activity2、Activity3 和 Activity4。

Activity1 调用 Activity2。

Activity2调用Activity3,Activity2结束。

Activity3调用Activity4,Activity3结束。

所以现在我只有 Activity1 和 Activity4。

目前用户可以看到Activity4。在某些情况下,我喜欢回到Activity1,但我仍然想保持Activity4的现有状态,这样当我回到Activity4时,我仍然拥有切换到Activity1之前的一切。我的问题是

  1. 如何在不丢失的情况下从 Activity4 切换回 Activity1 Activity4 中的任何内容?以便用户可以使用 Activity1。
  2. 当用户想加载Activity4时,可以回到上一个 Activity4的状态,这样Activity4中的所有进程都不需要 再次处理。
  3. 当 Activity4 切换回 Activity1 时,Activity4 将 onStop() 状态,因为它被 Activity1 隐藏。操作系统可以杀死任何 资源短缺时。如何检测 Activity4 被杀了?

Activity4 是 WebView,它在切换回 Activity1 之前有 url 链接。 谢谢

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以通过简单地调用来实现:

    final Intent intent = new Intent(this, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(intent);              
    

    如你所见,finish() 没有被调用,这是因为你的第一个Activity 将被启动并且当前将被置于后台。如果您想恢复第四个状态而不丢失它,第一个状态也是如此。

    【讨论】:

    • 那么如何在不关闭 Activity4 且在 Activity4 不丢失任何东西的情况下从 Activity4 回到 Activity1。
    • 仅使用我在回答中提供的代码。您只需将 MainActivity.class 替换为您的 Activity1 的名称。
    • 当我在 Activity1 中时,我检查了 List。但我没有看到我的 Activity4。还没完,应该在重新发送的活动列表中找到。我检查为 List taskList = mngr.getRecentTasks(10,0);为什么找不到?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 2014-11-13
    • 2012-11-27
    相关资源
    最近更新 更多