Android双击系统返回按钮退出应用程序

axkjgtzd  于 2023-11-15  发布在  Android
关注(0)|答案(1)|浏览(143)

在我的应用程序中,我有这样的代码:

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

k10s72fa

k10s72fa1#

您可以在Activity的onCreate方法中注册调度程序。

override fun onCreate() {
    onBackPressedDispatcher.addCallback(object: OnBackPressedCallback(true) {
        override fun handleOnBackPressed() {
            //Your functionality here
        }
    })
}

字符串
编辑:Java代码

getOnBackPressedDispatcher().addCallback(new OnBackPressedCallback(true) {
    @Override
    public void handleOnBackPressed() {
        //Your logic here
    }
});

相关问题