移动应用退出确认

时间:2016-06-09 17:59:51

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

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

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

  1. “如果您真的想退出”消息类型,请再次按回。
  2. “你真的想退出+是/否”对话框。
  3. 我正在探索第二种变体。

    我看到的问题主要与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怎么样?可以通过编程方式退出应用程序吗?

2 个答案:

答案 0 :(得分:0)

  1. 正式Windows Store Policy不允许此类行为:
  2.   

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

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

    1. 出于“测试目的”,在API中公开了两种方法以编程方式退出应用程序:
    2. 从技术上讲,您可以使用其中一种方法强制应用程序在用户确认退出后关闭。但不保证您将通过认证。

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

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

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

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

答案 1 :(得分:-1)

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

让我解释原因。

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