package com.mailssenger.util; import android.os.AsyncTask; import android.os.Handler; import com.mailssenger.CommonApplication; import com.mailssenger.R; import com.mailssenger.mail.MailAccount; public class LoginAsyncTask { private Handler mHandler; private MyAsyncTask mTask; private String mUserId; private OnLoginScuessListener mListener; public interface OnLoginScuessListener { void sendScuess(); } public void setOnSendScuessListener(OnLoginScuessListener listener) { this.mListener = listener; } Runnable reSend = new Runnable() { @Override public void run() { // TODO Auto-generated method stub L.i("resend msg..."); send();//重发 } }; public LoginAsyncTask(String jsonMsg,String useId) { // TODO Auto-generated constructor stub mUserId = useId; mHandler = new Handler(); } // 发送 public void send() { if (NetUtil.isNetConnected( CommonApplication.getInstance())) {//如果网络可用 mTask = new MyAsyncTask(); mTask.execute(); } else { T.showLong( CommonApplication.getInstance(), R.string.net_error_tip); } } // 停止 public void stop() { if (mTask != null) mTask.cancel(true); } class MyAsyncTask extends AsyncTask<Void, Void, String> { @Override protected String doInBackground(Void... message) { String result = ""; MailAccount mail = new MailAccount(); if(mail.authentication()){ return "succeed!"; }else{ return "failed"; } /*if(TextUtils.isEmpty(mUserId)) result = mBaiduPush.PushMessage(mMessage); else result = mBaiduPush.PushMessage(mMessage, mUserId);*/ } @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub super.onPostExecute(result); L.i("send msg result:"+result); if (result.equals("failed")) {// 如果消息发送失败,则100ms后重发 mHandler.postDelayed(reSend, 100); } else { if (mListener != null) mListener.sendScuess(); } } } }