正文  基础知识 > 生命周期/运行原理 >

android项目中的Activity统一管理 方便完全退出程序

android 退出应用程序会调用android os Process killProcess(android os Process myPid())或是System exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效。如果有A,B,C三个Activity,而想在B 或C ...

android 退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())
或是System.exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效。如果有A,B,C
三个Activity,而想在B 或C 中Activity 退出,调用上面的方法,往往会销毁当前的Activity 返回上
一个Activity。当然也可以逐个返回上一个Activity,直到跳转到入口的Activity,最后退出应用程
序。但这样比较麻烦,而且逐个返回的体验并不友好。
 
    使用栈统一管理项目中的Activity。建立一个单例模式进行管理。代码如下:
 
import java.util.LinkedList;
import java.util.List;
 
import android.app.Activity;
import android.app.Application;
 
public class ExitApplication extends Application {
 
 
 private List<Activity> activityList=new LinkedList<Activity>();
 
 private static ExitApplication instance;
 
 private ExitApplication()
 {
 }
 //单例模式中获取唯一的ExitApplication 实例
 public static ExitApplication getInstance()
 {
 if(null == instance)
 {
 instance = new ExitApplication();
 }
 return instance;
 
 }
 //添加Activity 到容器中
 public void addActivity(Activity activity)
 {
 activityList.add(activity);
 }
 //遍历所有Activity 并finish
 
 public void exit()
 {
 
 for(Activity activity:activityList)
 {
 activity.finish();
 }
 
 System.exit(0);
 
 }
 }