下面贴出两个方法,第一个是按两下返回键直接退出,第二个可以手动调用.
这两个方法都需要在 AndroidManifest.xml 中把 activity 设置为 singleTask,即 android:launchMode="singleTask"
/**
* 需要在 AndroidManifest.xml 中把 activity 设置为 singleTask
* android:launchMode="singleTask"
*/
private boolean mIsExit;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (mIsExit) {
this.finish();
} else {
Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
mIsExit = true;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mIsExit = false;
}
}, 2000);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
/**
* 退出程序的对话框,可用按钮等控制
* 需要在 AndroidManifest.xml 中把 activity 设置为 singleTask
* android:launchMode="singleTask"
*/
private void exitDialog() {
Dialog dialog = new AlertDialog.Builder(MainActivity.this)
.setTitle("程序退出?") // 创建标题
.setMessage("您确定要退出吗?") //表示对话框的内容
// .setIcon(R.drawable.ic_launcher) //设置LOGO
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
MainActivity.this.finish(); //操作结束
System.exit(0);//强制退出
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
}).create(); //创建对话框
dialog.show(); //显示对话框
}
参考了 https://blog.csdn.net/soul_code/article/details/50453934