再按一次退出程序

在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);
	}

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

时间: 2024-10-11 13:03:29

再按一次退出程序的相关文章

Android开发之”再按一次退出程序“的实现

现在移动客户端退出程序对话框退出越来越不流行了,都开始使用连续按两次来退出,即著名的“再按一次退出程序”模式.现在就看看怎么实现的吧. @SuppressLint("HandlerLeak") Handler handler = new Handler(){ public void handleMessage(Message msg){ switch (msg.what) { } } }; boolean willExit = false; @Override public void

Android:再按一次退出程序

感觉这种效果比较友好 //两秒内按返回键两次退出程序 private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ if((System.currentTimeMillis()-exitTime) >

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

private long exitTime = 0; @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ if((System.currentTimeMillis()-exitTime) > 2000){ Toast.makeText(getA

Android“再按一次退出程序”的具体实现

Android应用中许多退出程序的方式都是在你点击了返回按钮的时候,它弹出一个信息"再按一次退出",这个和时候我们只需要在按一次返回按钮,程序就退出了,有的 时候时间间隔是3秒或者其他的时间间隔,今天我就简单说一下实现原理. 其实实现还是比较简单的,我们需要在Activity中覆盖一个方法:public void onBackPressed():这个方法在返回键被点击的时候调用,覆盖这个方法之后我们重写它的实现: <span style="white-space:pre

【转】Android 实现“再按一次退出程序”

From:http://blog.csdn.net/ldj299/article/details/7574365 个人觉得当用户按下后退键时,出现"再按一次退出"的提示防止误操作比弹出一个对话框是会更人性化的.话不多说上代码: 第一种:重写onKeyDown来监听: long waitTime = 2000; long touchTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(

再按一次退出程序的实现

重写返回按键的方法:(个人认为这是最简单的) 用一个参数来纪录按下按键的返回时间,与上一次作比较. private long exitTime = 0; @Override public void onBackPressed() { if ((System.currentTimeMillis() - exitTime) > 2000) {//判断此次按键于上一次按键的时间差是否>2s Toast.makeText(MainActivity.this, "再按一次退出应用",

Android中的“再按一次返回键退出程序”实现

用户退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用的做法是在应用退出去前给出一个Dialog,我觉得这样不太友好,用户还得移动手指去按dialog中的按钮.个人觉得“再按一次返回键退出程序”是best practice,实现也很简单,直接上代码: private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(k

双击提示退出程序的实现与分析

去年年底在学android写demo的时候,又一次想要学着写一次双击退出的逻辑,但是当时看到好几十行的代码和逻辑当场就怂了,不过最近在做项目的时候,突然想到这个逻辑,就想着找来看看,然后发现还是相当简单的---啦啦啦--- 很容易想到这里需要一个定时器,来为我们开启一个异步计时的任务: @Override public void onBackPressed() { exitBy2Click(); } private void exitBy2Click() { Timer tExit= null;

Android_按两次返回键退出程序和长按返回键退出程序

以上两个功能主要是参考了一下博客的: http://blog.csdn.net/chenshijun0101/article/details/7682210 http://blog.csdn.net/winlinking/article/details/6596455 方法一: 按两次返回键退出程序: Activity: public class Back2FinishAppActivity extends Activity { Exit exit = new Exit(); /** Calle