我最近在很多 Android 应用和游戏中都注意到了这种模式:当单击返回按钮“退出”应用程序时,Toast
会出现类似于“请点击再次返回退出”。
我想知道,随着我越来越频繁地看到它,这是您可以在 Activity 中以某种方式访问的内置功能吗?我查看了许多类的源代码,但似乎找不到任何相关内容。
当然,我可以考虑几种方法来很容易地实现相同的功能(最简单的可能是在 Activity 中保留一个 boolean 值,指示用户是否已经点击过一次......)但我想知道是否有东西已经在这里了。
编辑:正如@LAS_VEGAS 提到的,我的意思并不是传统意义上的“退出”。 (即终止)我的意思是“回到应用程序启动 Activity 启动之前打开的任何内容”,如果这有意义的话:)
最佳答案
In Java Activity:
boolean doubleBackToExitPressedOnce = false;
@Override
public void onBackPressed() {
if (doubleBackToExitPressedOnce) {
super.onBackPressed();
return;
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce=false;
}
}, 2000);
}
In Kotlin Activity:
private var doubleBackToExitPressedOnce = false
override fun onBackPressed() {
if (doubleBackToExitPressedOnce) {
super.onBackPressed()
return
}
this.doubleBackToExitPressedOnce = true
Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show()
Handler(Looper.getMainLooper()).postDelayed(Runnable { doubleBackToExitPressedOnce = false }, 2000)
}
我认为这个处理程序有助于在 2 秒后重置变量。
https://stackoverflow.com/questions/8430805/