Android 退出整个应用程序
安卓的退出整个应用程序有点麻烦,因为返回键只会返回上一个Activity,而并不会退出整个程序,直到返回到第一个Activity时,返回键才能退出程序。
解决的方法也不难,原理就是将所有Activity存在一个List表中,在需要退出的时候遍历这个List表,表里的每一个Activity都调用finish()即可。为了方便每个Activity调用退出方法,可以通过单例模式把该功能封装成一个类文件从而方便调用。
示例如下:
package com.shiju.www; import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.Application; public class SysApplication extends Application { private List<Activity> mList=new LinkedList<Activity>(); private static SysApplication instance; public SysApplication() { // TODO Auto-generated constructor stub } public synchronized static SysApplication getInstance(){ if(null==instance){ instance=new SysApplication(); } return instance; } public void addActivity(Activity activity){ mList.add(activity); } public void exit(){ try { for(Activity activity:mList){ if(activity!=null){ activity.finish(); } } } catch (Exception e) { e.printStackTrace(); }finally{ System.exit(0); } } @Override public void onLowMemory() { // TODO Auto-generated method stub super.onLowMemory(); System.gc(); } }
在需要退出的地方直接调用以下代码即可:
SysApplication.getInstance().exit();
简而言之,通过单例模式把每个Activity 的引用添加到一个全局链表中,每次退出程序调用System.exit(0)时,先调用链表中Activity 的finish方法。