package com.partynetwork.iparty.app.ui; import com.partynetwork.dataprovider.anim.SplashAnim; import com.partynetwork.dataprovider.util.ApiKeyUtil; import com.partynetwork.dataprovider.util.T; import com.partynetwork.dataprovider.util.Util; import com.partynetwork.iparty.R; import com.partynetwork.iparty.app.AppConfig; import com.partynetwork.iparty.app.AppContext; import com.partynetwork.iparty.app.api.URLs; import com.partynetwork.iparty.base.UpdateManager; import com.baidu.android.pushservice.PushConstants; import com.baidu.android.pushservice.PushManager; import com.lidroid.xutils.HttpUtils; import com.lidroid.xutils.exception.HttpException; import com.lidroid.xutils.http.ResponseInfo; import com.lidroid.xutils.http.callback.RequestCallBack; import com.lidroid.xutils.http.client.HttpRequest.HttpMethod; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.os.Handler.Callback; import android.os.Message; import android.view.animation.Animation; import android.view.animation.Animation.AnimationListener; import android.widget.RelativeLayout; /** * 闪屏画面 com.dongcemedia.iparty.ui.Splash * * @author 沈跃双 Create at 2013-12-9 下午3:52:31 */ public class Splash extends Activity implements Callback { SplashAnim mSplash = new SplashAnim(2000); private RelativeLayout mRelativeLayoutLogo; /** 登陆进度提示框 */ boolean isFirstIn = false; private static final int GO_HOME = 1000; private static final int GO_GUIDE = 1001; private static final String SHAREDPREFERENCES_NAME = "first_pref"; private Handler mHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 设置闪屏视图布局 setContentView(R.layout.splash); mHandler=new Handler(this); getIpartyCode(); init(); } /** * 初始化方法 */ private void init() { mRelativeLayoutLogo = (RelativeLayout) findViewById(R.id.splash_rl); // 设置动画 mSplash.mSlplashAlph.setAnimationListener(new AnimationListener() { public void onAnimationEnd(Animation arg0) { if (!Util.isNetworkOk(Splash.this)) { T.showTips(Splash.this, R.drawable.tips_error, R.string.net_error_tip); finish(); } // 读取SharedPreferences中需要的数据 // 使用SharedPreferences来记录程序的使用次数 SharedPreferences preferences = getSharedPreferences( SHAREDPREFERENCES_NAME, MODE_PRIVATE); // 取得相应的值,如果没有该值,说明还未写入,用true作为默认值 isFirstIn = preferences.getBoolean("isFirstIn", true); // 判断程序与第几次运行,如果是第一次运行则跳转到引导界面,否则跳转到主界面 if (!isFirstIn) { // 使用Handler的postDelayed方法,3秒后执行跳转到MainActivity mHandler.sendEmptyMessage(GO_HOME); } else { mHandler.sendEmptyMessage(GO_GUIDE); } } public void onAnimationRepeat(Animation arg0) { } public void onAnimationStart(Animation arg0) { } }); // 开始动画 mRelativeLayoutLogo.startAnimation(mSplash.mSlplashAlph); } /** 请求的回调对象 */ private RequestCallBack<String> requestCallBack = new RequestCallBack<String>() { @Override public void onSuccess(ResponseInfo<String> responseInfo) { // 请求成功 AppConfig appConfig = AppConfig.getAppConfig(AppContext .getInstance()); appConfig.setIpartyCode(responseInfo.result); // 开启百度推送服务 // 以apikey的方式登录,一般放在主Activity的onCreate中 PushManager.startWork(getApplicationContext(), PushConstants.LOGIN_TYPE_API_KEY, ApiKeyUtil.getMetaValue(Splash.this, "api_key")); } @Override public void onFailure(HttpException error, String msg) { // 请求失败 getIpartyCode(); } }; /** * 获取验证码 */ public void getIpartyCode() { HttpUtils mHttpUtils = new HttpUtils(); mHttpUtils.send(HttpMethod.POST, URLs.URL_API_HOST + "/Public/echoIcode", requestCallBack); } @Override protected void onStart() { super.onStart(); PushManager.activityStarted(this); } @Override protected void onStop() { super.onStop(); PushManager.activityStoped(this); } @Override protected void onResume() { super.onResume(); } @Override protected void onNewIntent(Intent intent) { // 如果要统计Push引起的用户使用应用情况,请实现本方法,且加上这一个语句 setIntent(intent); handleIntent(intent); } /** * 处理Intent * * @param intent * intent */ private void handleIntent(Intent intent) { } /** * Handler:跳转到不同界面 */ @Override public boolean handleMessage(Message msg) { switch (msg.what) { case GO_HOME: new UpdateManager(Splash.this).checkUpdate(); break; case GO_GUIDE: Intent intent = new Intent(Splash.this, GuideActivity.class); Splash.this.startActivity(intent); Splash.this.finish(); break; } return false; } }