在我的应用程序中,我有这样的代码:
private boolean doubleBackToExitPressedOnce = false;
@Override
public void onBackPressed() {
if (doubleBackToExitPressedOnce) {
super.onBackPressed();
return;
}
this.doubleBackToExitPressedOnce = true;
showMsgSnack(this.getString(R.string.pressexit));
new Handler(Looper.getMainLooper()).postDelayed(() -> doubleBackToExitPressedOnce=false, 2000);
}
字符串
因此,如果用户单击系统后退按钮一次,它将显示一个小吃消息,然后在另一次单击后退按钮后,它将退出应用程序。
目前,onBackPressed
已被弃用,我正在尝试替换代码以保持完全相同的功能。
我找到的解决方案需要一个onclicktool-我不能设置,因为用户不会点击应用程序中的任何按钮,而是他设备上的系统返回按钮。
button.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
private boolean doubleBackToExitPressedOnce = false;
onBackPressedDispatcher.addCallback(new OnBackPressedCallback(true) {
handleOnBackPressed() {
this.doubleBackToExitPressedOnce = true;
showMsgSnack(this.getString(R.string.pressexit));
new Handler(Looper.getMainLooper()).postDelayed(() -> doubleBackToExitPressedOnce=false, 2000);
if (doubleBackToExitPressedOnce) {
finish();
}
}
})
型
1条答案
按热度按时间k10s72fa1#
您可以在Activity的
onCreate
方法中注册调度程序。字符串
编辑:Java代码
型