| | |
| | | package com.weikou.beibeivideo; |
| | | |
| | | import android.app.Activity; |
| | | import android.app.ActivityManager; |
| | | import android.app.Application; |
| | | import android.content.BroadcastReceiver; |
| | | import android.content.ComponentName; |
| | | import android.content.Context; |
| | | import android.content.Intent; |
| | | import android.content.IntentFilter; |
| | | import android.content.SharedPreferences; |
| | | import android.os.Bundle; |
| | | import android.os.Handler; |
| | | import android.os.Message; |
| | | import android.support.multidex.MultiDex; |
| | |
| | | import com.umeng.commonsdk.UMConfigure; |
| | | import com.umeng.socialize.PlatformConfig; |
| | | import com.umeng.socialize.UMShareAPI; |
| | | import com.weikou.beibeivideo.entity.ad.AdPidInfo; |
| | | import com.weikou.beibeivideo.entity.ad.AdPositionEnum; |
| | | import com.weikou.beibeivideo.entity.ad.SplashAdLoadInfo; |
| | | import com.weikou.beibeivideo.ui.SplashActivity; |
| | | import com.weikou.beibeivideo.ui.ad.SplashADFragment; |
| | | import com.weikou.beibeivideo.ui.ad.SplashAdActivity; |
| | | import com.weikou.beibeivideo.ui.push.PushOpenClickActivity; |
| | | import com.weikou.beibeivideo.util.BeibeiConstant; |
| | | import com.weikou.beibeivideo.util.CrashHandler; |
| | | import com.weikou.beibeivideo.util.FunshionConstant; |
| | | import com.weikou.beibeivideo.util.ad.AdUtil; |
| | | import com.weikou.beibeivideo.util.ad.CSJConstant; |
| | | import com.weikou.beibeivideo.util.ad.GDTConstant; |
| | | import com.weikou.beibeivideo.util.ad.TTAdManagerHolder; |
| | | import com.weikou.beibeivideo.util.downutil.StringUtils; |
| | | import com.yeshi.push.PushUtil; |
| | |
| | | import org.apache.http.Header; |
| | | import org.json.JSONException; |
| | | import org.json.JSONObject; |
| | | |
| | | import de.greenrobot.event.EventBus; |
| | | |
| | | |
| | | public class BeibeiVideoApplication extends Application { |
| | |
| | | crashHandler.init(getApplicationContext()); |
| | | } |
| | | |
| | | this.registerActivityLifecycleCallbacks(new MyActivityLifecycleCallbacks()); |
| | | application = this; |
| | | MultiDex.install(this); |
| | | //友盟初始化 |
| | |
| | | public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { |
| | | |
| | | } |
| | | },true); |
| | | }, true); |
| | | } |
| | | }); |
| | | |
| | |
| | | private void initCSJAd() { |
| | | TTAdManagerHolder.init(this); |
| | | } |
| | | |
| | | |
| | | class MyActivityLifecycleCallbacks implements Application.ActivityLifecycleCallbacks { |
| | | private int mFinalCount; |
| | | |
| | | @Override |
| | | public void onActivityCreated(Activity activity, Bundle savedInstanceState) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onActivityStarted(Activity activity) { |
| | | mFinalCount++; |
| | | //如果mFinalCount ==1,说明是从后台到前台 |
| | | if (mFinalCount == 1) { |
| | | Log.e(TAG, "应用从后台切换到前台"); |
| | | // 进入前台 改为热启动 |
| | | //判断当前activity |
| | | ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); |
| | | ComponentName cn = am.getRunningTasks(1).get(0).topActivity; |
| | | if (!cn.getClassName().equalsIgnoreCase(SplashActivity.class.getName())) { |
| | | //小于30分钟不展示 |
| | | // 测试 |
| | | if (System.currentTimeMillis() - SplashADFragment.lastShowTime < 1000 * 60 * 30L) |
| | | return; |
| | | |
| | | if (SplashADFragment.isAdLoaded()) { |
| | | startActivity(new Intent(getApplicationContext(), SplashAdActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); |
| | | return; |
| | | } |
| | | |
| | | AdUtil.AD_TYPE type1 = AdUtil.getAdType(getApplicationContext(), AdPositionEnum.splashHotStart); |
| | | String pid1 = AdUtil.getAdPid(getApplicationContext(), AdPositionEnum.splashHotStart); |
| | | |
| | | |
| | | AdPidInfo adPidInfo1 = null; |
| | | AdPidInfo adPidInfo2 = null; |
| | | if (type1 != null) { |
| | | String defaultPid = null; |
| | | if (type1 == AdUtil.AD_TYPE.csj) { |
| | | defaultPid = CSJConstant.SPLASH_AD_HOT; |
| | | } else if (type1 == AdUtil.AD_TYPE.gdt) { |
| | | defaultPid = GDTConstant.PID_SPLASH_HOT; |
| | | } |
| | | if (StringUtils.isNullOrEmpty(pid1)) { |
| | | defaultPid = pid1; |
| | | } |
| | | adPidInfo1 = new AdPidInfo(type1, defaultPid); |
| | | if (type1 == AdUtil.AD_TYPE.csj) { |
| | | adPidInfo2 = new AdPidInfo(AdUtil.AD_TYPE.gdt, GDTConstant.PID_SPLASH_HOT); |
| | | } else if (type1 == AdUtil.AD_TYPE.gdt) { |
| | | adPidInfo2 = new AdPidInfo(AdUtil.AD_TYPE.csj, CSJConstant.SPLASH_AD_HOT); |
| | | } |
| | | } |
| | | |
| | | |
| | | SplashADFragment.loadAd(getApplicationContext(), adPidInfo1, adPidInfo2, null, null, true, new SplashADFragment.AdLoadResultListener() { |
| | | |
| | | @Override |
| | | public void onAdLoad(SplashAdLoadInfo adLoadInfo) { |
| | | //展示广告 |
| | | try { |
| | | startActivity(new Intent(getApplicationContext(), SplashAdActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); |
| | | } catch (SecurityException e) { |
| | | |
| | | } catch (Exception e) { |
| | | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onNoAd() { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onClose() { |
| | | //广点通广告适用 |
| | | //结束广告 |
| | | //通过eventbus通知页面关闭 |
| | | EventBus.getDefault().post(new SplashAdLoadInfo(null, 0)); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onActivityResumed(Activity activity) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onActivityPaused(Activity activity) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onActivityStopped(Activity activity) { |
| | | mFinalCount--; |
| | | //如果mFinalCount ==0,说明是前台到后台 |
| | | if (mFinalCount == 0) { |
| | | Log.e(TAG, "应用从前台切换到后台"); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onActivitySaveInstanceState(Activity activity, Bundle outState) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onActivityDestroyed(Activity activity) { |
| | | |
| | | } |
| | | } |
| | | } |