所以我正在Xamarin Android上编写我的第一个小型应用程序。我注意到我的应用有时有时会突然关闭,当我按住键盘上的后退按钮以删除文本字段中的文本时,我发现它正在关闭。
我有此代码,该代码应两次按“后退”按钮退出应用程序:
bool doubleBackToExitPressedOnce = false;
public override bool OnKeyDown([GeneratedEnum] Keycode keyCode, KeyEvent e)
{
if (myWebView != null)
{
if (keyCode == Keycode.Back && myWebView.CanGoBack())
{
myWebView.GoBack();
return true;
}
else
{
if (doubleBackToExitPressedOnce)
{
base.OnBackPressed();
Java.Lang.JavaSystem.Exit(0);
return false;
}
doubleBackToExitPressedOnce = true;
Toast.MakeText(this, "Press back again to exit app", ToastLength.Short).Show();
new Handler().PostDelayed(() => {
doubleBackToExitPressedOnce = false;
}, 1000);
}
}
return false;
}
但是显然,它对手机的“后退”按钮没有反应,但对键盘上的“后退”按钮没有反应。
有什么办法解决这个问题吗?
答案 0 :(得分:0)
目前,我通过在第一条 if 语句
中添加下一个代码来解决该问题if (myWebView != null && e.Flags != (Android.Views.KeyEventFlags.KeepTouchMode | Android.Views.KeyEventFlags.SoftKeyboard))
我仍然想知道这是否是解决我问题的正确方法。