package com.sets.speedtest.activity; import java.lang.ref.WeakReference; import org.json.JSONObject; 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 android.support.v4.content.LocalBroadcastManager; import com.sets.speedtest.R; import com.sets.speedtest.common.CommDialog; import com.sets.speedtest.constant.C; import com.sets.speedtest.manager.SharedPreferencesManager; import com.sets.speedtest.manager.http.BaseResponseHandler; import com.sets.speedtest.manager.http.WSClient; import com.sets.speedtest.receiver.ConnectionChangeReceiver; import com.sets.speedtest.utils.ResponseParser; import com.sets.speedtest.utils.ViewUtils; /** * 进入应用的闪屏 * * @author : lipan * @create_time : 2014年8月26日 上午2:04:50 * @desc : * @update_person: * @update_time : * @update_desc : * */ public class SplashActivity extends BaseActivity { private static final long DURATION = 1000; // 闪屏的显示时长 protected static final String TAG = "com.sets.speedtest.activity.SplashActivity"; private Handler myHandler = new MyHandler(this); private ConnectionOKReceiver connectionOKReceiver; private LocalBroadcastManager localBroadcastManager; private static class MyHandler extends Handler { private WeakReference<SplashActivity> activity; public MyHandler(SplashActivity activity) { this.activity = new WeakReference<SplashActivity>(activity); } @Override public void handleMessage(Message msg) { SplashActivity _this = activity.get(); if (_this == null) return; _this.handleMessage(); } } /** * handleMessage */ private void handleMessage() { finish(); startActivity(AddCampusActivity.class); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); connectionOKReceiver = new ConnectionOKReceiver(); localBroadcastManager = LocalBroadcastManager.getInstance(getContext()); // 注册网络变化广播 localBroadcastManager.registerReceiver(connectionOKReceiver, new IntentFilter( ConnectionChangeReceiver.CONNECTION_OK)); if (!ViewUtils.checkNetworkWithDialog(this)) { return; } /** * 获得基本信息 */ WSClient.postJson(getApplicationContext(), C.WS_GET_BASE_INFO, null, new BaseResponseHandler() { @Override public void onSuccess(int statusCode, JSONObject response) { ResponseParser handler = ResponseParser.handler(getApplicationContext(), response); if (handler.success) { SharedPreferencesManager.getInstance().setUploadUrl( handler.data.optString("uploadUrl")); SharedPreferencesManager.getInstance().setDownloadUrl( handler.data.optString("downloadUrl")); SharedPreferencesManager.getInstance().setDownloadUrlHost( handler.data.optString("downloadUrlHost")); SharedPreferencesManager.getInstance().setDownloadUrlPort( handler.data.optString("downloadUrlPort")); SharedPreferencesManager.getInstance().setDownloadUrlPath( handler.data.optString("downloadUrlPath")); SharedPreferencesManager.getInstance().setComments( handler.data.optString("comments")); SharedPreferencesManager.getInstance().setFormulaNum( handler.data.optInt("formulaNum")); } } }); myHandler.sendEmptyMessageDelayed(0, DURATION); } @Override protected void onDestroy() { super.onDestroy(); myHandler.removeCallbacksAndMessages(null); localBroadcastManager.unregisterReceiver(connectionOKReceiver); } /** * 联网后自动进入应用 */ private class ConnectionOKReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { CommDialog.dismiss(); myHandler.sendEmptyMessageDelayed(0, DURATION); } } }