再按一次退出程序

Posted slgkaifa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了再按一次退出程序相关的知识,希望对你有一定的参考价值。

android程序应用中常常会遇到点击返回键时提示再按一次退出程序。

要实现这个功能须要完毕两点:


一、可以彻底退出程序

·之前看到有人用 finish();,事实上这样做并不能真的退出程序,这样仅仅是结束当前的Activity,一个程序中是能够有多个Activity的,在android能够彻底关闭进程的方法有好几种。

第一种:

				// 获取当前进程的id
				int pid = android.os.Process.myPid();
				android.os.Process.killProcess(pid);

这样的方法仅仅能杀死自己的进程。

另外一种:

				ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
				am.killBackgroundProcesses(getPackageName());
还须要加入权限

    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

这样的方法不仅能够杀死自己的进程还能够杀死其他进程,在实际使用时会有点小问题。

第三种:

System.exit(0);// 终止当前执行的java虚拟机,导致程序终止

这样的方法是曾经在java中经常使用的,但不推荐在这里中使用。

除了这三种好像还有其它方法来实现,只是似乎没有什么必要。反而会让人想起孔乙己用4中不同的写法来写茴香豆的茴字。

二、按两次才运行退出程序操作

private long exitTime=0;
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {

		if (event.getKeyCode()==KeyEvent.KEYCODE_BACK) {
			if (System.currentTimeMillis()-exitTime>2000) {
				exitTime=System.currentTimeMillis();
				Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
			
			}else {
				android.os.Process.killProcess(android.os.Process.myPid());
			}
			return true;
			
		}
		return super.onKeyDown(keyCode, event);
	}

当然实现点击两次退出操作也有多种操作这里就不一一介绍了。


以上是关于再按一次退出程序的主要内容,如果未能解决你的问题,请参考以下文章

Android中点击物理返回按键(再按一次退出程序)

Android中再按一次退出和完美退出整个应用程序

Android开发 从多个Activity返回到第一个Activity时如何实现“再按一次退出程序”

android 再按一次退出(笔记)

mui实现退出当前应用

Android退出事件处理