Android退出应用的最佳方式

 下面贴出两个方法,第一个是按两下返回键直接退出,第二个可以手动调用.

这两个方法都需要在 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

猜你喜欢

转载自my.oschina.net/zhupengdaniu/blog/1793724