package com.novelbook.android; import android.app.Activity; import android.app.Application; import android.content.Context; import android.provider.SyncStateContract; import android.util.Log; import com.bytedance.sdk.openadsdk.TTAdConfig; import com.bytedance.sdk.openadsdk.TTAdConstant; import com.bytedance.sdk.openadsdk.TTAdSdk; import com.google.gson.Gson; import com.novelbook.android.AD.toutiao.TTAdManagerHolder; import com.novelbook.android.bean.AdSetting; import com.novelbook.android.netutils.HttpMethods; import com.novelbook.android.netutils.NetUtil; import com.novelbook.android.utils.Config; import com.novelbook.android.utils.Constants; import com.novelbook.android.utils.LogcatHelper; import com.novelbook.android.utils.PageFactory; import com.novelbook.android.AD.SplashAdManager; import com.umeng.analytics.MobclickAgent; import com.umeng.commonsdk.UMConfigure; import org.litepal.LitePal; import java.util.ArrayList; import java.util.List; public class MyApp extends Application { public static volatile Context applicationContext = null; SplashAdManager splashAdManager; private List oList;//用于存放所有启动的Activity的集合 @Override public void onCreate() { super.onCreate(); oList = new ArrayList(); applicationContext = getApplicationContext(); HttpMethods.USERAGENT = NetUtil.getUserAgent(); HttpMethods.LOCALUSERAGENT = NetUtil.getUserAgent(applicationContext); initialConstants(); PageFactory.createPageFactory(this); LogcatHelper.getInstance(this).start(); // BlurKit.init(this); LitePal.initialize(this); splashAdManager = new SplashAdManager(this); initUmengApi(); initAD(); } private void initialConstants(){ Config config= Config.createConfig(this); Constants.SEX = config.getSexOption(); Constants.PRE_LOAD_CHAPT =config.isPreLoadChapter(); Gson gson = new Gson(); Constants.AD_SETTING = gson.fromJson(config.getAdSetting(), AdSetting.class); if(Constants.AD_SETTING==null){ Constants.AD_SETTING = new AdSetting(); } Constants.SHOW_NOVEL_CHAPTER_URL =config.isShowChatpUrl(); Constants.DECLARE = config.getDeclare(); Constants.ONE_DP_SIZE = (int)applicationContext.getResources().getDimension(R.dimen.one_dp); } private void initUmengApi(){ UMConfigure.init(applicationContext,UMConfigure.DEVICE_TYPE_PHONE,null); MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO); } private void initAD(){ initAD_ChuanShanJia(); } private void initAD_ChuanShanJia(){ TTAdManagerHolder.init(applicationContext); } public boolean exit() { System.exit(-1); removeALLActivity_(); return true; } /** * 添加Activity */ public void addActivity_(Activity activity) { // 判断当前集合中不存在该Activity if (!oList.contains(activity)) { oList.add(activity);//把当前Activity添加到集合中 } currentAct=activity; } private static Activity currentAct =null; public static Activity getCurrentActivity(){ return currentAct; } /** * 销毁单个Activity */ public void removeActivity_(Activity activity) { //判断当前集合中存在该Activity if (oList.contains(activity)) { oList.remove(activity);//从集合中移除 activity.finish();//销毁当前Activity } } /** * 销毁所有的Activity */ public void removeALLActivity_() { //通过循环,把集合中的所有Activity销毁 Log.d("MyApp", "removeALLActivity_: total activities to finish: " + oList.size()); for (Activity activity : oList) { Log.d("MyApp", "removeALLActivity_: " + activity.getLocalClassName()); activity.finish(); } } public List getActivityList(){ return oList; } }