xamarin.android - 如何退出 Xamarin Forms 中的应用程序?

标签 xamarin.android xamarin.forms xamarin.windows

我的项目是使用主从导航构建的。
列表中共有三个页面,分别命名为资源、联系人和登录。
在 iOS 中一切正常,但是当用户按下 Droid/WinPhone 设备硬件后退按钮时,应用程序应该退出。
Xamarin Forms 是否有任何适用于所有设备的应用程序退出机制。? (我的意思是 native 代码不依赖于平台)
提前致谢。

最佳答案

我是这样做的

在 xamarin 表单中,我添加了界面

public interface INativeHelper
{
    void CloseApp();
}

在 android 项目中,我实现了 INativeHelper
public class NativeHelper : INativeHelper
{
    public void CloseApp()
    {
        Android.OS.Process.KillProcess(Android.OS.Process.MyPid());
    }                
}

IOS中INativeHelper的实现
public class NativeHelper : INativeHelper
{
    public void CloseApp()
    {
        Process.GetCurrentProcess().CloseMainWindow();
        Process.GetCurrentProcess().Close();
    }       
}

然后只需覆盖 Xamarin.Forms 项目页面中的 OnBackButtonPressed 方法
protected override bool OnBackButtonPressed()
    {
        INativeHelper nativeHelper = null;
        nativeHelper = DependencyService.Get<INativeHelper>();
        if (nativeHelper != null)
        {
            nativeHelper.CloseApp();
        }  

        return base.OnBackButtonPressed();
    }

我没有为 WinPhone 做实现,但它应该是相似的。

关于xamarin.android - 如何退出 Xamarin Forms 中的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40254023/

相关文章:

azure - 如何将 Microsoft Azure 存储模拟器与 Xamarin 结合使用?

android - 带有单选按钮的可扩展 ListView 。为一个 RadioGroup 选择值,当组扩展时会选择更多

c# - 向 api 发出请求适用于 Android,但不适用于 IOS。 Xamarin

android - 如果我没有达到 64k 限制,为什么我需要启用 multidex?

android - FormsAppCompatActivity 和 MasterDetailPage : no Toolbar

xamarin - 如何在 Windows 8 上的 Xamarin Forms 中显示任意文件夹中的图像

c# - 将 System.List<string> 转换为 Java.Lang.String[]

c# - 如何使用Mono for Android模仿Android/IOS的联系人