package com.android.app_base.base; import android.app.Activity; import android.app.Application; import android.os.Bundle; import androidx.annotation.NonNull; import com.android.app_base.BuildConfig; import com.android.app_base.http.OkHttpHelper; import com.android.app_base.manager.AppManager; import com.blankj.utilcode.util.Utils; import com.hjq.http.EasyConfig; /** * Application基类 */ public class BaseApplication extends Application { private static Application sInstance; @Override public void onCreate() { super.onCreate(); setApplication(this); Utils.init(this); } /** * 当主工程没有继承BaseApplication时,可以使用setApplication方法初始化BaseApplication * @param application */ public static synchronized void setApplication(@NonNull Application application) { sInstance = application; //注册监听每个activity的生命周期,便于堆栈式管理 application.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { AppManager.getAppManager().addActivity(activity); } @Override public void onActivityStarted(Activity activity) { } @Override public void onActivityResumed(Activity activity) { } @Override public void onActivityPaused(Activity activity) { } @Override public void onActivityStopped(Activity activity) { } @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { } @Override public void onActivityDestroyed(Activity activity) { AppManager.getAppManager().removeActivity(activity); } }); } /** * 获得当前app运行的Application */ public static Application getInstance() { if (sInstance == null) { throw new NullPointerException("please inherit BaseApplication or call setApplication."); } return sInstance; } }