android 自定义application

自定义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();
    }
}

转载于:https://my.oschina.net/nandecanghai123/blog/1529336

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值