package com.jiuqi.njt.util.login; import android.content.Context; import android.content.Intent; import android.os.AsyncTask; import android.util.Log; import com.jiuqi.mobile.nigo.comeclose.bean.base.UserBean; import com.jiuqi.mobile.nigo.comeclose.exception.LoginException; import com.jiuqi.mobile.nigo.comeclose.manager.base.ILoginManager; import com.jiuqi.mobile.nigo.comeclose.manager.base.IRegistManager; import com.jiuqi.mobile.nigo.comeclose.ws.client.ClientContext; import com.jiuqi.njt.data.MyApp; import com.jiuqi.njt.data.OptsharepreInterface; import com.jiuqi.njt.register.RegisterUtils; import com.jiuqi.njt.ui.LoginActivityNew; import com.jiuqi.njt.util.Constants; import com.jiuqi.njt.util.UIUtil; //可通过该方法调用登陆重新获取新的Session对象 public class AutoLoginTask extends AsyncTask<Void, Void, Boolean> { private MyApp application; private Context context; private OptsharepreInterface sharePre; private final String TAG = this.getClass().getName(); // private WriteFile writeFile = new WriteFile(TAG+ JqydDateUtil.getDateDayOne(new Date())); private String message = ""; private boolean isLoginSuccess; private boolean jump =true; //如果密码错误是否跳转到登陆页面标志,除启动页外都是FALSE private UserBean userBean = null; public AutoLoginTask(Context context) { this.context = context; this.application = (MyApp) context.getApplicationContext(); sharePre = new OptsharepreInterface(context); // writeFile.writeToFileAdditional("开始自动登录线程"); Log.e(TAG, "开始自动登录线程"); } @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); } @Override protected Boolean doInBackground(Void... arg0) { try { // 新注销原来的session ClientContext context = application.getClientContext(); if (null!= context) { try { ILoginManager loginManager = context.getManager(ILoginManager.class); UserBean user = context.getUser(); if(user ==null){ user = new UserBean(); user.setAccount(Constants.ANONYMOUS); } loginManager.loginOut(context.getSessionID(),context.getUser(), 2); } catch (Exception e) { } } context = ClientContext.getClientContext(Constants.SERVER_URL,sharePre.getPres("account"),sharePre.getPres("password")); application.setClientContext(context); userBean = context.getUser(); if (null != userBean) { application.setIsLogin(true); isLoginSuccess = true; } } catch (Exception e) { if(e instanceof LoginException){ message = e.getMessage(); } e.printStackTrace(); } return isLoginSuccess; } @Override protected void onPostExecute(Boolean result) { super.onPostExecute(result); if (result) { Log.e(TAG, "登录成功"); application.setShowDialog(true); if(userBean!=null){ RegisterUtils.loginSuccessNew(context, userBean); } }else if(!"".equals(message)&&message.contains("用户名或密码错误")&&jump){ UIUtil.showMsg(context, message); Intent in = new Intent(); in.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); in.setClass(context, LoginActivityNew.class); context.startActivity(in); } } }