package com.lling.qiqu.activitys; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.StrictMode; import android.util.Log; import android.view.KeyEvent; import android.widget.FrameLayout; import cn.smssdk.SMSSDK; import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.view.annotation.ContentView; import com.lling.qiqu.App; import com.lling.qiqu.R; import com.lling.qiqu.beans.User; import com.lling.qiqu.commons.Constants; import com.lling.qiqu.utils.HttpUtil; import com.qq.e.splash.SplashAd; import com.qq.e.splash.SplashAdListener; import com.qq.e.splash.SplashAdView; import com.tencent.mm.sdk.openapi.IWXAPI; import com.tencent.mm.sdk.openapi.WXAPIFactory; import com.tencent.weibo.TencentUtils; import com.umeng.analytics.MobclickAgent; import com.umeng.message.PushAgent; /** * @ClassName: SplashActivity * @Description: 应用开机界面 * @author lling * @date 2015年7月15日 */ @ContentView(R.layout.activity_splash) public class SplashActivity extends BaseActivity { private static final String TAG = "SplashActivity"; @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //使用StrictMode对耗时操作检测 if (Constants.DEBUG) { StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites().detectNetwork() .penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects().detectLeakedClosableObjects() .penaltyLog().penaltyDeath().build()); } ViewUtils.inject(this); App.isStart = true; init(); if(HttpUtil.isNetworkAvailable(this)) { //准备展示开屏广告的容器 FrameLayout container = (FrameLayout) this .findViewById(R.id.splashcontainer); SplashAdView adView = null; // 创建开屏广告,广告拉取成功后会自动展示在container中。Container会首先被清空 new SplashAd(this, container, Constants.GDT_APPId, Constants.GDT_SPLASHPosId, new SplashAdListener() { // 广告拉取成功开始展示时调用 public void onAdPresent() { if(Constants.DEBUG) { Log.d(TAG, "present"); } } // 广告拉取超时(3s)或者没有广告时调用,errCode参见SplashAd类的常量声明 public void onAdFailed(int errCode) { Log.w(TAG, "onAdFailed" + errCode); Intent intent = new Intent(SplashActivity.this, IndexActivity.class); startActivityWithAnimation(intent); SplashActivity.this.finish(); } // 广告展示时间结束(5s)或者用户点击关闭时调用。 public void onAdDismissed() { if(Constants.DEBUG) Log.i(TAG, "onAdDismissed"); Intent intent = new Intent(SplashActivity.this, IndexActivity.class); startActivityWithAnimation(intent); SplashActivity.this.finish(); } }); } else { Handler handler = new Handler(); handler.postDelayed(startAct, 3000); } } /** * 应用程序初始化 */ private void init() { initYouMeng(); App.currentUser = (User)spUtil.getObject("user", null); //初始化短信接口 SMSSDK.initSDK(this, getString(R.string.sina_appid), getString(R.string.youmeng_appid)); initWeiXin(); TencentUtils.initTencent(this, spUtil); } private void initYouMeng() { // AnalyticsConfig.enableEncrypt(true); MobclickAgent.openActivityDurationTrack(false); PushAgent mPushAgent = PushAgent.getInstance(this); mPushAgent.onAppStart(); if(spUtil.getBoolean(Constants.IS_RECEIVE_PUSH, true)) { mPushAgent.enable(); } else { mPushAgent.disable(); } } private void initWeiXin() { IWXAPI api = WXAPIFactory.createWXAPI(this, com.lling.qiqu.wxapi.Constants.APP_ID); api.registerApp(com.lling.qiqu.wxapi.Constants.APP_ID); } private Runnable startAct = new Runnable() { @Override public void run() { startActivityWithAnimation(new Intent(SplashActivity.this, IndexActivity.class)); finish(); } }; public boolean onKeyDown(int keyCode, KeyEvent event) { // 阻止用户在展示过程中点击手机返回键 if (keyCode == KeyEvent.KEYCODE_BACK) { return true; } return super.onKeyDown(keyCode, event); } @Override public void onBackPressed() { } @Override protected void onResume() { MobclickAgent.onPageStart("SplashActivity"); //统计页面 super.onResume(); } @Override protected void onPause() { MobclickAgent.onPageEnd("SplashActivity"); super.onPause(); } }