【问题标题】:Mobile app exit confirmation移动应用退出确认
【发布时间】:2016-06-15 18:18:58
【问题描述】:

我需要为我的移动应用提供退出确认对话框。

当用户点击手机上的Back 按钮时会出现该对话框。我知道两种选择,即

  1. “如果您真的想退出,请再按一次”类型的消息。
  2. “您真的要退出 + 是/否”对话框。

我正在探索第二种变体。

我看到的问题主要与 Windows 商店应用程序有关。

如果我展示它并给用户时间来决定,那么我已经取消了默认行为。

对于 Windows 商店应用程序,它是 Windows.Phone.UI.Input.HardwareButtons.BackPressed,即我已将 Windows.Phone.UI.Input.BackPressedEventArgs.Handled 设置为 true。

如果用户点击Yes,即确认他打算退出应用程序,我该怎么办?

我已阅读Metro App can no longer be programmatically killed 并了解以编程方式关闭 Windows 商店应用程序被认为是“不可接受的”。是不是意味着windows平台禁止了这样的退出确认对话框?

Android 呢?是否可以以编程方式退出应用程序?

【问题讨论】:

  • 一般来说,杀死一个移动应用程序在每个平台都是一个禁忌。

标签: c# android xamarin windows-store-apps


【解决方案1】:
  1. 正式Windows Store Policy不允许这样的行为:

在适用的情况下,按下后退按钮应将用户带到上一页/对话框。如果用户在应用程序的第一页按下返回按钮,则应用程序终止(除非允许它在后台运行)。

所以你可能很幸运能够通过认证,但绝对不推荐这种行为。

  1. 出于“测试目的”,API 中公开了两种以编程方式退出应用程序的方法:

从技术上讲,您可以使用其中一种方法在用户确认退出后强制关闭应用程序。但不能保证你会通过认证。

  1. 对于 Android 也有指南。特别是 Core App Quality 指南说

应用不会在任何目标设备上崩溃、强制关闭、冻结或以其他方式运行异常。

关于如何正确关闭 Android 应用程序的 Stack Overflow 上有各种讨论 (example)。

根据我的经验,此类应用会进行路径认证,但 Play 团队可能会选择不推广它们,因为它们不遵循官方设计指南。

【讨论】:

  • 感谢您重复我在原始问题中提供的信息,即我问题中的链接。你不回答我的问题。
  • 我用 Android 案例更新了我的答案,但仍然不确定你到底要什么。如果问题是“我应该使用这样的对话” - 答案是否定的,它违反了指导方针。如果问题是“我可以关闭应用程序吗” - 答案是肯定的,有相应的 API。如果问题是“我会通过认证吗”——这取决于,对于 Windows 应用商店,根据我对某些应用程序的经验,对于 Google Play,由于手动测试,你不会有一些很好的变化——是的。
【解决方案2】:

您可以使用 onBackPressed 回调方法并显示一个对话框,但正如 Jason 所说,这在 Android 上也是一种不好的做法。

让我解释一下原因。

操作系统有一个 PackageManager,它管理设备上的每个应用程序。应用程序具有优先级。这就是为什么电话应用程序在接到电话而您的电话应用程序被暂停(在后台)时打开的原因。如果具有最高优先级的活动应用程序需要内存或者您的设备遇到任何问题,它可以破坏您的活动,然后自动关闭您的应用程序。

【讨论】:

  • 说实话我不明白你的解释。我看不出您的解释与以编程方式关闭我的应用程序之间有任何关系。
  • 您希望用户确认退出操作,因此您需要检测按下的后退按钮并显示一个对话框,因为此按钮可以退出应用程序。您只是在寻找一种自己退出的方式吗?或者您想阻止任何退出操作?
  • 肯定不会阻止任何退出。我只想防止由于错误地点击后退按钮而导致不必要的退出。这是我要反驳的唯一案例。
  • 所以我告诉你的回调方法就是你需要的。将其应用于 Main / Launcher 活动(在 Android 的情况下)并打开一个对话框,一种弹出窗口,您可以在其中确认或不确认操作。
  • 我知道如何自己完成任务。问题是完全不同的事情。这如何符合“不错”的应用程序。并为此推理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
  • 2016-05-10
  • 2012-07-12
相关资源
最近更新 更多