package com.troy.xifan; import android.app.Activity; import android.app.Application; import android.os.Bundle; import com.avos.avoscloud.AVAnalytics; import com.avos.avoscloud.AVOSCloud; import com.chenenyu.router.Router; import com.facebook.stetho.Stetho; import com.orhanobut.logger.LogLevel; import com.orhanobut.logger.Logger; import com.troy.xifan.config.Constants; import com.troy.xifan.model.response.UserRes; import im.fir.sdk.FIR; import java.util.ArrayList; import java.util.List; /** * Created by chenlongfei on 2016/11/6. */ public class App extends Application { public static final String TAG = "Xifan"; private static App sInstance; private UserRes user; private List<Activity> mActivityList = new ArrayList<>(); public App() { sInstance = this; } @Override public void onCreate() { super.onCreate(); registerActivityLifecycleCallbacks(mActivityLifecycleCallbacks); init(); } private void init() { Router.initialize(this); Stetho.initializeWithDefaults(this); Logger.init(TAG) // default PRETTYLOGGER or use just init() .methodCount(1) // default 2 .hideThreadInfo() // default shown .logLevel(LogLevel.FULL) // default LogLevel.FULL .methodOffset(2); // default 0 FIR.init(this); // 初始化参数依次为 this, AppId, AppKey AVOSCloud.initialize(this, Constants.AVOSCloud.APP_ID, Constants.AVOSCloud.APP_KEY); AVAnalytics.enableCrashReport(this, true); } public static App getInstance() { return sInstance; } public UserRes getUser() { return user; } public void setUser(UserRes user) { this.user = user; } private ActivityLifecycleCallbacks mActivityLifecycleCallbacks = new ActivityLifecycleCallbacks() { @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { if (!mActivityList.contains(activity)) { mActivityList.add(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) { if (mActivityList.contains(activity)) { mActivityList.remove(activity); } } }; public List<Activity> getActivityList() { return mActivityList; } public void setActivityList(List<Activity> activityList) { mActivityList = activityList; } public void cleanActivityList() { for (Activity activity : mActivityList) { activity.finish(); } } }