package com.juns.wechat; import java.util.ArrayList; import java.util.HashMap; import net.tsz.afinal.FinalDb; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.text.TextUtils; import android.util.Log; import com.baidu.android.pushservice.PushConstants; import com.baidu.android.pushservice.PushManager; import com.easemob.EMCallBack; import com.easemob.chat.EMChatManager; import com.easemob.chat.EMGroupManager; import com.juns.wechat.bean.GroupInfo; import com.juns.wechat.bean.User; import com.juns.wechat.common.Utils; import com.juns.wechat.view.activity.LoginActivity; public class SplashActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_start); // initBaiduPush(); initData(); int RunCount = Utils.getIntValue(this, "RUN_COUNT"); if (RunCount == 0) { // TODO 引导页面 } else { Utils.putIntValue(this, "RUN_COUNT", RunCount++); } Boolean isLogin = Utils.getBooleanValue(SplashActivity.this, Constants.LoginState); if (isLogin) { // Intent intent = new Intent(this, UpdateService.class); // startService(intent); getLogin(); } else { mHandler.sendEmptyMessage(0); } } private void initData() { GloableParams.UserInfos = new ArrayList<User>(); GloableParams.Users = new HashMap<String, User>(); GloableParams.ListGroupInfos = new ArrayList<GroupInfo>(); GloableParams.GroupInfos = new HashMap<String, GroupInfo>(); FinalDb db = FinalDb.create(this, Constants.DB_NAME, false); GloableParams.ListGroupInfos = db.findAll(GroupInfo.class); GloableParams.UserInfos = db.findAll(User.class); } // 百度云推送初始化 private void initBaiduPush() { PushManager.activityStarted(this); PushManager.startWork(getApplicationContext(), PushConstants.LOGIN_TYPE_API_KEY, Constants.BaiduPullKey); } private void getLogin() { String name = Utils.getValue(this, Constants.User_ID); String pwd = Utils.getValue(this, Constants.PWD); if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(name)) getChatserive(name, pwd); else { Utils.RemoveValue(SplashActivity.this, Constants.LoginState); mHandler.sendEmptyMessageDelayed(0, 600); } } private Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) { Boolean isLogin = Utils.getBooleanValue(SplashActivity.this, Constants.LoginState); Intent intent = new Intent(); if (isLogin) { intent.setClass(SplashActivity.this, MainActivity.class); } else { intent.setClass(SplashActivity.this, LoginActivity.class); } startActivity(intent); overridePendingTransition(R.anim.push_up_in, R.anim.push_up_out); finish(); } }; private void getChatserive(final String userName, final String password) { EMChatManager.getInstance().login(userName, password, new EMCallBack() {// 回调 @Override public void onSuccess() { runOnUiThread(new Runnable() { public void run() { // TODO 保存用户信息 Utils.putBooleanValue(SplashActivity.this, Constants.LoginState, true); Utils.putValue(SplashActivity.this, Constants.User_ID, userName); Utils.putValue(SplashActivity.this, Constants.PWD, password); Log.e("Token", EMChatManager.getInstance() .getAccessToken()); Log.d("main", "登陆聊天服务器成功!"); // 加载群组和会话 EMGroupManager.getInstance().loadAllGroups(); EMChatManager.getInstance() .loadAllConversations(); mHandler.sendEmptyMessage(0); } }); } @Override public void onProgress(int progress, String status) { } @Override public void onError(int code, String message) { Log.d("main", "登陆聊天服务器失败!"); } }); } }