package com.tencent.hq.qq.ui; import android.annotation.SuppressLint; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.os.Handler; import android.os.Message; import cn.bmob.im.BmobChat; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; import com.baidu.location.LocationClientOption.LocationMode; import com.baidu.mapapi.SDKInitializer; import com.tencent.hq.qq.CustomApplcation; import com.tencent.hq.qq.R; import com.tencent.hq.qq.config.Config; public class SplashActivity extends BaseActivity { private static final int GO_HOME = 100; private static final int GO_LOGIN = 200; private LocationClient mLocationClient; private BaiduReceiver mReceiver; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); BmobChat.DEBUG_MODE = true; BmobChat.getInstance(this).init(Config.applicationId); initLocClient(); IntentFilter iFilter = new IntentFilter(); iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR); iFilter.addAction(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR); mReceiver = new BaiduReceiver(); registerReceiver(mReceiver, iFilter); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); if (userManager.getCurrentUser() != null) { updateUserInfos(); mHandler.sendEmptyMessageDelayed(GO_HOME, 2000); } else { mHandler.sendEmptyMessageDelayed(GO_LOGIN, 2000); } } private void initLocClient() { mLocationClient = CustomApplcation.getInstance().mLocationClient; LocationClientOption option = new LocationClientOption(); option.setLocationMode(LocationMode.Hight_Accuracy); option.setCoorType("bd09ll"); option.setScanSpan(1000); option.setIsNeedAddress(false); mLocationClient.setLocOption(option); mLocationClient.start(); } @SuppressLint("HandlerLeak") private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case GO_HOME: startAnimActivity(MainActivity.class); finish(); break; case GO_LOGIN: startAnimActivity(LoginActivity.class); finish(); break; } } }; public class BaiduReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { String s = intent.getAction(); if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) { ShowToast("key 验证出错! 请在 AndroidManifest.xml 文件中检查 key 设置"); } else if (s .equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) { ShowToast("当前网络连接不稳定,请检查您的网络设置!"); } } } @Override protected void onDestroy() { if (mLocationClient != null && mLocationClient.isStarted()) { mLocationClient.stop(); } unregisterReceiver(mReceiver); super.onDestroy(); } }