Android 编程下 Activity 的创建和应用退出时的销毁

为了确保对应用中 Activity 的创建和销毁状态进行控制,所以就需要一个全局的变量来记录和销毁这些 Activity。这里的大概思路是写一个类继承 Application,并使获取该 Application 的实体为单例模式,在新的 Activity 被创建时在对应 Activity 的 onCreate 方法中将自己存入 Application 的集合中,然后在应用退出时将 Application 存有的 Activity 逐个进行销毁即可完全退出应用。代码如下:

package cn.sunzn.app;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.Application;

public class AgentApp extends Application {
    private List<Activity> activities = new ArrayList<Activity>();
    private static AgentApp instance;

    private AgentApp() {

    }

    /**
     * 单例模式中获取唯一的 Application
     */
    public static AgentApp getInstance() {
        if (null == instance) {
            instance = new AgentApp();
        }
        return instance;
    }

    /**
     * 存放 Activity 到 List 中
     */
    public void addActivity(Activity activity) {
        activities.add(activity);
    }

    /**
     * 遍历存放在 List 中的 Activity 并退出
     */
    public void onTerminate() {
        super.onTerminate();
        for (Activity activity : activities) {
            activity.finish();
            activities.remove(activity);
        }
        android.os.Process.killProcess(android.os.Process.myPid());
    }
}

然后在每个 Acitivity 的 onCreate 方法中添加如下代码:

AgentApp.getInstance().addActivity(this);

最后在你要退出应用的界面执行如下的代码:

AgentApp.getInstance().onTerminate();

通过将 Activity 纳入 Application 对所维护集合的管理,即可达到完美退出应用的效果。

posted @ 2013-08-25 19:26  sunzn  阅读(2467)  评论(0编辑  收藏  举报