android 自定义application

来源:互联网 发布:自动偷菜软件 编辑:程序博客网 时间:2024/05/22 11:47

自定义Application-MyApplication,继承了常用一些方法,包括页面跳转之后页面栈,指定保留页面退出其他,获取当前最上层页面名称等常用方法

public class MyApplication extends Application {    private volatile ArrayList<Activity> mTempActivity = new ArrayList<Activity>();    public static Typeface typeFace;    private Context mResumeContext;    public Context getResumeContext() {        return mResumeContext;    }    public void setResumeContext(Context mResumeContext) {        this.mResumeContext = mResumeContext;    }    @Override    public void onCreate() {        super.onCreate();        SDKInitializer.initialize(this);        FMAgent.init(getApplication(), NetConstantValue.getService());    }    @Override    public void onTerminate() {        super.onTerminate();        clearTempActivityInBackStack();    }    public synchronized void addTempActivityInBackStack(Activity activity) {        mTempActivity.add(activity);    }    //退出所有页面    public synchronized void clearTempActivityInBackStack() {        Iterator<Activity> iterator = mTempActivity.iterator();        while (iterator.hasNext()) {            Activity activity = iterator.next();            activity.finish();        }        mTempActivity.clear();    }//保留指定页面并退出其他页面    public synchronized void clearTempActivityInBackStack(Class<?> className) {        if (className != null) {            Iterator<Activity> iterator = mTempActivity.iterator();            while (iterator.hasNext()) {                Activity activity = iterator.next();                String class_name=className.getName();                if(null==class_name){                    return;                }                if (!activity.getClass().getName().equals(class_name)) {                    activity.finish();                }            }            Activity saveActivity = null;            for (Activity activity : mTempActivity) {                if (activity.getClass().getName().equals(className.getName())) {                    saveActivity = activity;                }            }            mTempActivity.clear();            addTempActivityInBackStack(saveActivity);        }    }    public synchronized void clearTempActivityInBackStack2() {        for (int x = 0; x < mTempActivity.size() - 1; x++) {            Activity activity = mTempActivity.get(x);            activity.finish();        }    }    public MyApplication getApplication() {        // TODO Auto-generated method stub        return this;    }    public ArrayList<Activity> getAllActivities() {        return mTempActivity;    }//获取最上层页面名称 public static String getTopActivityName(Context context) {        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);        ComponentName cn = am.getRunningTasks(1).get(0).topActivity;        return cn.getClassName();    }}
原创粉丝点击