如何在单击后退按钮两次时退出 Xamarin.Android 应用程序(包括单击之间的确认消息)?

Pro*_*ack 1 android xamarin.android

在我的 MainActivity 中,我像这样覆盖了 OnBackPressed() 方法

public override void OnBackPressed()
{
    Toast toast = Toast.MakeText(this, "Press again to exit", ToastLength.Short);
    toast.SetMargin(0,0.20f);
    toast.Show();
}
Run Code Online (Sandbox Code Playgroud)

当用户在 MainActivity 中并单击一次后退按钮时,屏幕上会出现消息“再次按下退出”,该消息在几秒钟后消失。如果用户在屏幕上显示此消息时再次单击后退按钮,我希望应用程序退出,但是当消息消失并且用户单击后退按钮时,我希望该消息再次出现。我已经看到一些在 Java 中这样做的示例,但我发现很难调整这些示例以在 Xamarin.Android 上工作。

小智 9

这段代码工作正常。

    long lastPress;

    public override void OnBackPressed()
    {
        // source /sf/answers/1898743311/
        long currentTime = DateTime.UtcNow.Ticks / TimeSpan.TicksPerMillisecond;

        // source /sf/answers/980453981/
        if (currentTime - lastPress > 5000)
        {
            Toast.MakeText(this, "Press back again to exit", ToastLength.Long).Show();
            lastPress = currentTime;
        }
        else
        {
            base.OnBackPressed();
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果您想使用较短的吐司长度,请更改时间。

ToastLength.Long = 3500(毫秒)

ToastLength.Short = 2000 (ms)

  • 我在我的 xamarin 表单项目中使用了这个技巧,我覆盖了主页的 OnBackButtonPressed() 技巧工作正常:) (2认同)