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

标签 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();
}

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

最佳答案

这段代码工作正常。

    long lastPress;

    public override void OnBackPressed()
    {
        // source https://stackoverflow.com/a/27124904/3814729
        long currentTime = DateTime.UtcNow.Ticks / TimeSpan.TicksPerMillisecond;

        // source https://stackoverflow.com/a/14006485/3814729
        if (currentTime - lastPress > 5000)
        {
            Toast.MakeText(this, "Press back again to exit", ToastLength.Long).Show();
            lastPress = currentTime;
        }
        else
        {
            base.OnBackPressed();
        }
    }

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

ToastLength.Long = 3500(毫秒)

ToastLength.Short = 2000(毫秒)

关于android - 单击后退按钮两次时如何使 Xamarin.Android 应用程序退出(包括单击之间的确认消息)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47866047/

相关文章:

android - 备份代理助手 : onRestore not getting called

java - 无法解析 RecyclerView 版本 23

android - 在 xamarin android 上创建 header ListView 时出现一些错误

android - Xamarin Android 应用响应 'Share To' 请求

android - SpeechToText synthesizeToFile 不排队

java - 如何修复错误膨胀类 android.support.design.widget.NavigationView

android - 在 MonoDroid 中以编程方式隐藏键盘

xamarin - Xamarin Android 中的 "VerifyTaskFailed"任务意外失败

xamarin.android - 类型 'GroupExpandedEventArgs' 已包含 'P0' Xamarin Android Java Bindings for Thoughtbot ExpandableRecyclerView 的定义

java - Java中从子类构造函数调用 super 构造函数