137 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			137 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | 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.android.gms.ads.MobileAds; | |||
|  | 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<Activity> oList;//用于存放所有启动的Activity的集合 | |||
|  |     @Override | |||
|  |     public void onCreate() { | |||
|  |         super.onCreate(); | |||
|  |         oList = new ArrayList<Activity>(); | |||
|  |         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(); | |||
|  |         initAD_AdMob(); | |||
|  |     } | |||
|  |     private void initAD_ChuanShanJia(){ | |||
|  |         TTAdManagerHolder.init(applicationContext); | |||
|  |     } | |||
|  |     private void initAD_AdMob(){ | |||
|  |         if(AdSetting.getAppID(Constants.AD_MOB).length()>0){ | |||
|  |             MobileAds.initialize(MyApp.applicationContext,     AdSetting.getAppID(Constants.AD_MOB)); | |||
|  |         } | |||
|  | 
 | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     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<Activity> getActivityList(){ | |||
|  |         return oList; | |||
|  |     } | |||
|  | 
 | |||
|  | } |