android中如何实现连续点击返回键退出整个应用 android两次返回退出应用

首先是实现连续点击返回键时,我们要重写Activity的onKeyDown方法,以捕捉到按键的点击事件,然后我们应该实现连续点击返回键的效果,在第一次点击的时候出现“再次点击退出”的提示,实现代码如下:

public boolean onKeyDown(int keyCode, KeyEvent event) {

		if(keyCode == KeyEvent.KEYCODE_BACK)
		{
			long secondClick = System.currentTimeMillis();
			if(secondClick - firstClick > 1000)
			{
				Toast.makeText(MainActivity.this, "再次点击退出", Toast.LENGTH_SHORT).show();
				firstClick = secondClick;
				return true;
			}else{
				//此处添加退出整个应用的代码
				return true;
			}
		}
		return super.onKeyDown(keyCode, event);
	}

firstClick为long型全局变量。

然后是退出整个应用的处理了,这里我们通过Application来进行处理,首先我们应该自定义一个MyApplication类继承自Application,注意千万不要在忘记在Manifest文件中进行相关的配置,把该文件中的application节点中的name属性的值改成.MyApplication。然后我们应该在MyApplication中定义两个函数,一个是记录我们所有创建过的Activity的的函数,另一个是删除所有创建的Activity的方法。

public void addActivity(Activity activity)
	{
		list.add(activity);
	}
	
	public void exitApp()
	{
		for(Activity ac : list)
		{
			ac.finish();
		}
	}

每当我们创建一个Activity的时候就应该在该Activity的onCreate方法中调用MyApplication中的addActivity方法进行记录,为了保证我们每次添加的activity都是添加在同一个list中,我们要保证每一个Activity中使用的NMyApplication对象都是同一个对象,我们需要对MyApplication进行单利实现,又由于继承自Application的类的构造函数不能私有,搜易在这里我们写一个伪单例

private static MyApplication myApp;
	public static MyApplication getInstance()
	{
		if(myApp == null){
			myApp = new MyApplication();
		}
		return myApp;
	}


然后再每一个Activity中加入MyApplication.getInstance().addActivity(this);

然后在连续点击的时候加入MyApplication.getInstance().exitApp();语句,即可完全退出程序。


其实,在这里我们也可以不用伪单例来实现,我们直接把list定义成公有的static类型,然后再每个Activity中调用list就行了。


Demo下载地址:http://download.csdn.net/detail/shinilaobababa/6497587






你可能感兴趣的:(android中如何实现连续点击返回键退出整个应用 android两次返回退出应用)