【工具类】Android退出多个Activity

// 不能把应用程序完全杀死,并且也不会把当前的Activity栈清空。

android.os.Process.killProcess(android.os.Process.myPid())

 

// 不会把自己的应用程序杀死。

System.exit(0);

 

// 可以杀死别的程序的进程,但是无法杀死自己的进程。

ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);   

manager.restartPackage(getPackageName());

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

 

【正确的使用方法】

创建出来整个应用程序的 全局的实例。

在整个应用程序的进程第一次被创建的时候 执行。

 

 1 import java.util.LinkedList;  2 import java.util.List;  3 import android.app.Activity;  4 import android.app.Application;  5  6 /** 8  * Title: ExitApplication.java</br>  9  * Description:退出APP </br> 10  * Create Date:2012-10-11 </br> History: <br/> 11  * -------Date-----------Modifer-------------------Remark------------- 12  * 2012-8-7 DuanRan create 13  * @author: duanran<br/> 14 */ 15 public class ExitApplication extends Application { 16 17 private List<Activity> activityList = new LinkedList<Activity>(); 18 private static ExitApplication instance; 19 20 private ExitApplication() { 21 22  } 23 24 // 单例模式获取唯一的exitapplication 25 public static ExitApplication getInstance() { 26 if (null == instance) { 27 instance = new ExitApplication(); 28  } 29 return instance; 30  } 31 32 // 添加activity到容器中 33 public void addActivity(Activity activity) { 34 if(!activityList.contains(activity)) 35  activityList.add(activity); 36 37  } 38 39 // 遍历所有的Activiy并finish 40 public void exit() { 41 for (Activity activity : activityList) { 42  activity.finish(); 43  } 44 System.exit(0); 45  } 46 47 public void remove(Activity ar){ 48  activityList.remove(ar); 49  } 50 }

 

在配置文件中,application中加入 android:name="ExitApplication".

 

在Activity中调用:

// 初始化的时候使用,把当前Activity添加进去 ExitApplication.getInstance().addActivity(this); // 退出程序的时候,把所有Activity删除掉 ExitApplication.getInstance().remove(this);

 

你可能感兴趣的:(Activity)