Android之退出应用关闭项目每个Activity的总结

来源:互联网 发布:击剑器材数据 编辑:程序博客网 时间:2024/05/21 18:10

思路

我们先封装好一个类叫MyApplication这个类,把这个类设置为单例模式,只有一个对象,然后在这个类里面写一个能装Activity的集合,相当于一个栈,然后每次有activity的时候,就去压进栈,当我要退出应用程序的时候,我们就把不为空的Activity都finish()掉,然后再杀死进程。

好了,爆我们的MyApplication这个类的代码
public class MyApplication {    public static final String TAG = MyApplication.class.getSimpleName();    private static MyApplication instance = new MyApplication();    List<Activity> activities = new ArrayList<>(); // 整个应用栈中存在的Activity    public static MyApplication getInstance() {        return instance;    }    private  MyApplication() {    }    // 退出应用    public void exitApplication(Context mContext) {        CommonLog.i(mContext.getString(R.string.exit_appliaction));        for (Activity activity : activities) {            if (activity != null) {                activity.finish();            }        }        AppController.getInstance(mContext).getRequestQueue().cancelAll(AppController.COMMON_REQUEST_TAG);        System.exit(0);        android.os.Process.killProcess(android.os.Process.myPid());    }    public void addToApplicationActivityStack(Activity activity) {        this.activities.add(activity);    }}

在需要继承的Activity里面创建对象
protected MyApplication mMyApplication = MyApplication.getInstance();


每次创建一个Activity的时候在oncreate里面写上
mMyApplication.addToApplicationActivityStack(this);

退出就调用
mMyApplication.exitApplication()




0 0
原创粉丝点击