点击返回键关闭应用程序的步骤

本文介绍了一种让Android应用优雅地退出的方法,通过创建一个专门的APPCloser类来管理应用的关闭过程。该类提供了构建退出确认对话框的功能,并能释放资源及终止进程。此外,文章还展示了如何在MainActivity中监听并处理返回键事件,以及如何在ChildActivity中配置以实现统一的应用退出体验。

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

1. 创建一个专门用于app关闭的类

**
 * 专门用于应用程序关闭的类。
 * <p/>
 * 主要功能:
 * 1. 创建退出AlertDialog
 * 2. 释放所有必要资源 
 * 
 * @author Lear
 *
 */
public final class APPCloser {

	public static Dialog buildLeavingDialog(Context context) {
		AlertDialog.Builder builder = new AlertDialog.Builder(context);
		builder
		.setMessage(R.string.dialog_msg)
		.setPositiveButton(R.string.dialog_confirm,
				new DialogInterface.OnClickListener() {

					public void onClick(DialogInterface dialog, int which) {
						releaseResource();
						killProcess();
					}
				})
		.setNegativeButton(R.string.dialog_cancel, null);
		return builder.create();
	}
	
	private static void releaseResource() {
		// TODO 
	}

	private static void killProcess() {
		Process.killProcess(Process.myPid());
	}
}

2. 在MainActivity(也就是主要页面)中,监听返回键事件。

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK) {
			showDialog(DIALOG_LEAVING_ID);
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}

	// --------------------Dialog

	private static final int DIALOG_LEAVING_ID = 0;

	@Override
	protected Dialog onCreateDialog(int id, Bundle args) {
		switch (id) {
		case DIALOG_LEAVING_ID:
			return APPCloser.buildLeavingDialog(this);
		}
		return null;
	}

3. 如果有ChildActivity,而且也想让他们,按返回键退出app,可以这样做,即不处理返回键事件,让它继续向上传播。

@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		return keyCode == KeyEvent.KEYCODE_BACK ? false : super.onKeyDown(
				keyCode, event);
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值