【问题标题】:Closing windows phone app programmatically以编程方式关闭 Windows Phone 应用程序
【发布时间】:2016-04-25 06:45:49
【问题描述】:

我正在使用以下代码在我的应用程序启动时检查网络访问

public async void CheckNetwork()
    {
        if (!NetworkAvailabilty.Instance.IsNetworkAvailable)
        {
            MessageDialog Message = new MessageDialog("Network access not available.", "Network Error");
            Message.Commands.Add(new UICommand("Close"));
            await Message.ShowAsync();
            Application.Current.Exit();
        }
    }

这在 Windows 10 桌面版中按预期工作。但是当我在我的手机中运行该应用程序时,它无法关闭该应用程序。这可能是什么原因以及如何强制关闭我的应用程序?

【问题讨论】:

    标签: c# windows-10 windows-10-mobile windows-10-universal


    【解决方案1】:

    作为设计原则,您不应该手动关闭应用程序。请参考this link(针对 WP8 开发者,但仍然有效)。 但是,如果您正在为自己开发测试应用程序,则可以抛出异常,这是关闭应用程序的唯一方法。

    throw new Exception();
    

    如果您打算在市场上发布您的应用,请不要这样做:

    应用中未处理的异常会不必要地消耗用户手机和 Windows Phone 服务器上的资源。 手机会为未处理的异常生成并上传故障转储,以帮助您查找和修复代码中的错误。让您的应用崩溃以关闭它会浪费用户的电池电量和网络带宽。

    【讨论】:

    • 我的应用需要网络访问才能工作。不使用网络访问就没有功能。所以我认为在没有网络可用的情况下打开应用程序没有任何意义。这就是我想关闭应用程序的原因。我还有哪些其他选择?
    • 我会说一个特殊的页面,解释没有找到网络,邀请用户更改他的 WiFi / 数据设置。您可以在此页面中插入针对设备设置的特殊链接(URI“ms-settings:network-wifi”和“ms-settings:datausage”),请参考msdn.microsoft.com/en-us/library/windows/apps/mt228342.aspx插入这些链接
    • 如 robin abishek 所说,如果您必须退出应用程序,请使用 Terminate
    • @PeterTorr-MSFT 我找不到 Terminate 方法。当没有 bviale 建议的网络访问权限时,我将我的应用程序更改为重定向到设置页面。
    • 糟糕,Terminate 适用于 Silverlight 应用程序,抱歉。 Exit 应该可以工作,除非有错误。
    【解决方案2】:

    尝试 Application.Current.Terminate() 而不是 Exit()

    【讨论】:

    • 没有 Application.Current.Terminate() 方法。我是否遗漏了任何参考资料?
    • @MohamedShakeel,它在官方文档中。检查此链接..https://msdn.microsoft.com/library/windows/apps/system.windows.application.terminate(v=vs.105).aspx.. 您可以在那里查看版本信息。 Windows Phone 操作系统支持它
    • @robinabishek 谢谢,但它适用于 WinPhone8 和 8.1,而不是 Win10 和 Win10Mobile
    • 我猜这些 API 仅适用于 WinPhone 8.1。你可以查看Win10 API的官方文档
    【解决方案3】:

    尝试执行ApplicationView.GetForCurrentView().TryConsolidateAsync()

    【讨论】:

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