android程序被退出自动启动项,Android里实现退出主程序的提示代码

本文介绍了一种在Android应用中实现二次确认退出的方法,当用户点击返回键时,会弹出提示对话框,避免用户意外退出程序。通过重写onKeyDown()或dispatchKeyEvent()方法,检测返回键事件,并调用showTips()函数显示对话框,确保用户在两次点击返回键后才会真正退出程序。这样可以提高用户体验,减少误操作导致的程序关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当用户选择"取消"的时候,只要单纯的retuan,即可返回主程序.

我们可以定义一个showTips()的专用方法在main Activity里面,那么,每次我们写的时候,就调用这个函数的就可以了。

private void showTips(){

AlertDialog alertDialog = new AlertDialog.Builder(Activity.this)

.setTitle("退出程序")

.setMessage("是否退出程序")

.setPositiveButton("确定", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which)

Activity.this.finish();

}

})

.setNegativeButton("取消",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which)

return;

}}).create(); //创建对话框

alertDialog.show(); // 显示对话框

}

那么,在哪里调用这个提示的方法呢?

最初我的想法是打算在Android 的 主Activity 里面的onDestory() 函数里面定义的,后来试了一下,发觉其实这个函数是在当初Activity退出的时候,才会被调用的,如果在这里才调用,就太迟了。

所以,应该找到的是返回按键的响应时间,也就是函数Activity. onKeyDown(int keyCode, KeyEvent event) 函数里面响应事件的发生.

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if(keyCode==KeyEvent.KEYCODE_BACK && event.getRepeatCount()==0){

this.showTips();

return false;

}

return false;

}

至此,通过复写onKeyDown函数,当用户单击返回的按钮的时候,就会弹出提示的对话框,可以有效地防止用户由于失误引起的不必要的退出。

实现android 再按一次退出程序代码

private long exitTime = 0;

/**

* 捕捉返回事件按钮

*

* 因为此 Activity 继承 TabActivity 用 onKeyDown 无响应,所以改用 dispatchKeyEvent

* 一般的 Activity 用 onKeyDown 就可以了

*/

@Override

public boolean dispatchKeyEvent(KeyEvent event) {

if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {

if (event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) {

this.exitApp();

}

return true;

}

return super.dispatchKeyEvent(event);

}

/**

* 退出程序

*/

private void exitApp() {

// 判断2次点击事件时间

if ((System.currentTimeMillis() - exitTime) > 2000) {

Toast.makeText(MainActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();

exitTime = System.currentTimeMillis();

} else {

finish();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值