android: 再按一次返回键退出
一,不要再使用onBackPressed
onBackPressed() 在Android 13中被弃用,
即当build中compileSdkVersion和targetSdkVersion为33及以上,onBackPressed()被弃用
即当build中compileSdkVersion和targetSdkVersion为33及以上,onBackPressed()被弃用
二,代码:
public class MainActivity extends AppCompatActivity {
//声明一个long类型变量:用于存放上一点击“返回键”的时刻
private long mExitTime;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
// 处理返回按键事件
Logger.d("handleOnBackPressed", "返回键被点击");
//与上次点击返回键时刻作差
if ((System.currentTimeMillis() - mExitTime) > 2000) {
//大于2000ms则认为是误操作,使用Toast进行提示
Toast.makeText(MainActivity.this, "再按一次退出程序", Toast.LENGTH_LONG).show();
//并记录下本次点击“返回键”的时刻,以便下次进行判断
mExitTime = System.currentTimeMillis();
} else {
//小于2000ms则认为是用户确实希望退出程序-调用System.exit()方法进行退出
System.exit(0);
}
}
});
三,测试效果:

浙公网安备 33010602011771号