【问题标题】:Android going to the wrong activity when button clicked单击按钮时Android会进入错误的活动
【发布时间】:2023-03-05 04:02:01
【问题描述】:

在我的 android 应用程序中,我有 4 个活动:

  1. 地图(单实例)
  2. 配置
  3. 时钟
  4. 完成

用户旅程如下:

  1. 用户单击 Map 活动中的一个按钮,该按钮将打开 Configure 活动。
  2. 然后用户单击配置活动上的按钮并打开时钟活动。
  3. 然后用户单击 Clock 活动上的按钮并打开 Finish 活动。
  4. 然后用户单击 Finish 活动上的按钮并打开 Map 活动。
  5. 然后用户返回到第 1 步并重新开始。

用户第一次执行此操作时,旅程运行良好。然而,第二次(第 5 步)而不是启动用户的 Configure Activity 被带到 Finished 活动。

我的代码为 Configure 活动明确启动了一个新意图,但这似乎被忽略了。

意图的代码是(我使用的是 Xamarin):

Intent configure = new Intent(context, typeof(ConfigureActivity));
_context.StartActivity(intent);

我是否需要传递一些额外的标志来强制它打开正确的 Activity?

【问题讨论】:

  • 还有更多,代码中的其他地方是这个sn-p中没有的错误。
  • 这是一个错字还是您保留了 2 个上下文? context_context。另外,你从哪里调用StartActivity 方法?

标签: android xamarin android-activity


【解决方案1】:

嗯,据我了解,这个问题似乎更像是一个错字,您调用了错误的意图,这反过来又加载了错误的页面。

Intent configure = new Intent(context, typeof(ConfigureActivity));
context.StartActivity(configure);

现在,当您用它替换代码时,它应该调用正确的Activity

【讨论】:

    【解决方案2】:

    这个问题源于我对 Android Tasks 以及 Task 如何影响 Android 加载的 Activity 的误解。我还有几个 Activity LaunchModes 配置不正确。

    对我来说,这个问题的答案是重新阅读 Android 任务信息,并查看 Activity LaunchMode 和 No History 设置。我还重新阅读了有关 Android 任务标志的文档。

    我最终使用的设置概述:

    1. 地图 - SingleTo、清除顶部、新任务
    2. 配置-
    3. 时钟 -
    4. 完成 - 清除顶部,无历史记录

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多