BaseApplication.java 1.82 KB

package com.wd.common.base;

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


import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModelStore;
import androidx.lifecycle.ViewModelStoreOwner;

import com.wd.common.listener.UserActivityLifecycleCallbacks;

import java.util.List;

public class BaseApplication extends Application  implements ViewModelStoreOwner {
    private ViewModelStore mAppViewModelStore;
    private final UserActivityLifecycleCallbacks mLifecycleCallbacks = new UserActivityLifecycleCallbacks();

    public static BaseApplication instance;

    @Override
    public void onCreate() {
        super.onCreate();
        instance = this;
        // 注册Activity生命周期监听
        registerActivityLifecycleCallbacks(mLifecycleCallbacks);
        mAppViewModelStore = new ViewModelStore();
    }

    /**
     * 获取一个Application对象
     */
    public static synchronized BaseApplication getInstance() {
        return instance;
    }

    public UserActivityLifecycleCallbacks getLifecycleCallbacks() {
        return mLifecycleCallbacks;
    }

    /**
     * finish所有Activity
     */
    public void finishAllActivity() {
        UserActivityLifecycleCallbacks lifecycleCallbacks = getLifecycleCallbacks();
        if (lifecycleCallbacks == null) {
            return;
        }
        List<Activity> activities = lifecycleCallbacks.getActivityList();
        if (activities == null || activities.isEmpty()) {
            return;
        }
        for (Activity activity : activities) {
            activity.finish();
        }
    }

    @NonNull
    @Override
    public ViewModelStore getViewModelStore() {
        return mAppViewModelStore;
    }

    //全局的监听器使用
    public void countDownTimerChange(int i) {
        //请在子类方法中查看业务代码
    }
}