本文只做备忘、留影用。具体类参考之前的三篇文章。类名和方法名稍有改动。
//三种方法的定义
private SyncCaseAsyncTask caseSyncTask = null;
private SyncCaseAsyncTask.onSyncCompleted syncCompletedEventHandler;
private SyncCaseThread caseSyncThread = null;
private SyncCaseThread.onCaseSync2Server sync2ServerEventHandler;
private SyncCaseHelper mSyncCaseHelper = null;
private SyncCaseHelper.onSyncCompleted mSyncCompletedEventHanlder;
private SyncCaseHelper.onCaseSync2Server mSync2ServerEventHanlder;
private static Handler mHandler;
//三种方法的调用
// --方法1-AsyncTask
if (caseSyncTask == null) {
// caseSyncTask = new SyncCaseAsyncTask();
// caseSyncTask.addCase(mDatas.get(mPosition));
// caseSyncTask.setOnSyncCompleted(syncCompletedEventHandler);
// caseSyncTask.execute();
}
// --方法1-模仿AsyncTask的Thread
if (caseSyncThread == null) {
// caseSyncThread = new SyncCaseThread();
} else {
// caseSyncThread.addCase(mDatas.get(mPosition));
// caseSyncThread.setOnSyncCase2Server(sync2ServerEventHandler);
// caseSyncThread.setOnSyncCompleted(new onSyncCompleted() {
//
// @Override
// public void SyncCompleted() {
// Logs.i("2.全部完成。");
// }
// });
// caseSyncThread.start();
}
// --方法3-SyncCaseHelper
if (mSyncCaseHelper == null) mSyncCaseHelper = new SyncCaseHelper();
mSyncCaseHelper.addCase(mDatas.get(mPosition));
mSyncCaseHelper.setOnSyncCase2Server(mSync2ServerEventHanlder);
mSyncCaseHelper.setOnSyncCompleted(mSyncCompletedEventHanlder);
mSyncCaseHelper.doJobs();
//三种方法的事件处理:1
syncCompletedEventHandler = new SyncCaseAsyncTask.onSyncCompleted() {
@Override
public void SyncCompleted() {
showMsg("1--全部完成同步哦--");
caseSyncTask.clear();
caseSyncTask = null;
}
};
//三种方法的事件处理:2
sync2ServerEventHandler = new SyncCaseThread.onCaseSync2Server() {
@Override
public void SyncCase2Server(Case cs) {
Logs.i("2--cs完成同步哦--");
}
};
//三种方法的事件处理:2
mSyncCompletedEventHanlder = new SyncCaseHelper.onSyncCompleted() {
@Override
public void SyncCompleted() {
Logs.i("3--全部完成同步哦--");
// --在外部移除列表內容。
mSyncCaseHelper.clear();
}
};
mSync2ServerEventHanlder = new SyncCaseHelper.onCaseSync2Server() {
@Override
public void SyncCase2Server(Case cs) {
Logs.i("3.更新完畢:" + cs.getCaseName());
mHandler.obtainMessage(1, cs.getCaseGUID()).sendToTarget();
}
};
mHandler = new Handler() {
public void handleMessage(Message msg) {
// showMsg("what:" + msg.what + "case name:" + msg.obj.toString());
switch (msg.what) {
case 1:
String _CaseGUID = msg.obj.toString();
//--
break;
default:
break;
}
super.handleMessage(msg);
};
};