Android程序设计:一个用于同步远程数据库数据异步类AsyncTask
来源:互联网 发布:大数据技术及应用 编辑:程序博客网 时间:2024/06/11 00:45
一个用于同步远程数据库数据异步类AsyncTask
此类省略某些业务代码:
package com.abc.splashdemo;//import ...;import android.os.AsyncTask;public class SyncCaseAsyncTask extends AsyncTask<String, Integer, String> { public interface onSyncCompleted { public void SyncCompleted(); } private List<Case> listCases = new ArrayList<Case>(); private onSyncCompleted mOnSyncCompleted = null; public SyncCaseAsyncTask() { } public void addCase(String strCaseGUID) { //.. } public void addCase(Case cs) { //.. } public void clear() { listCases.clear(); } public void setOnSyncCompleted(onSyncCompleted onSyncCompletedEventHandler) { mOnSyncCompleted = onSyncCompletedEventHandler; } private boolean checkIsExist(String strCaseGUID) { boolean rtn = false; //.. return rtn; } @Override protected void onPreExecute() { super.onPreExecute(); //.. } @Override protected String doInBackground(String... params) { if (listCases.size() > 0) { //.. updateCase2Server(cs); //.. return "同步完畢"; } else { return "沒有參數"; } } private void updateCase2Server(Case cs) { //.. } @Override protected void onPostExecute(String result) { super.onPostExecute(result); if (mOnSyncCompleted != null) { mOnSyncCompleted.SyncCompleted(); } } @Override protected void onCancelled() { super.onCancelled(); }}
UI Activity的调用方法:
//--初始化--private SyncCaseAsyncTask caseSyncTask = new SyncCaseAsyncTask();//--增加事件处理-- caseSyncTask.setOnSyncCompleted(new onSyncCompleted() { @Override public void SyncCompleted() { showMsg("--完成同步哦--"); caseSyncTask.clear(); } });//--调用-- if (caseSyncTask != null) { caseSyncTask.addCase(new Case); caseSyncTask.execute(); }
另外一个调用方法:可以多次调用,不过要等待异步执行完毕后,才从新手动执行,否则需要加一个
stopAyncTaskRunning(); 取消或者停止异步。
if (caseSyncTask == null) { caseSyncTask = new SyncCaseAsyncTask(); caseSyncTask.addCase(mDatas.get(mPosition)); caseSyncTask.setOnSyncCompleted(SyncCompletedEventHandler); caseSyncTask.execute();}SyncCompletedEventHandler = new onSyncCompleted() { @Override public void SyncCompleted() { showMsg("--完成同步哦--"); caseSyncTask.clear(); caseSyncTask = null; }};private void stopAyncTaskRunning() { if (caseSyncTask != null && caseSyncTask .getStatus() == AsyncTask.Status.RUNNING) { caseSyncTask .cancel(true); //if task is still running, stop it; }}
0 0
- Android程序设计:一个用于同步远程数据库数据异步类AsyncTask
- Android程序设计:一个用于同步远程数据库数据Thread类模仿AsyncTask
- Android程序设计:实现同步远程数据库数据的辅助类SyncHelper
- android AsyncTask 类的使用方法 用于异步刷新UI
- Android 异步加载数据 AsyncTask
- android异步类AsyncTask
- android 异步类 AsyncTask
- 【Android】AsyncTask异步类
- Android异步加载数据 AsyncTask demo application
- Android:ListView数据异步加载、Handler、AsyncTask
- Android异步操作----AsyncTask类
- android异步操作类----AsyncTask
- android异步类AsyncTask详解
- Android中的AsyncTask异步类
- Android 异步类AsyncTask学习
- android同步数据库数据
- AsyncTask异步加载数据
- AsyncTask异步加载数据
- Solr 配置文件之core.properties、solr.xml和Config Sets
- 数据挖掘之随即森林
- [python] 向指定套接字发送信息
- Sumdiv(POJ--1845
- 【MongoDB】-用户权限设置详解
- Android程序设计:一个用于同步远程数据库数据异步类AsyncTask
- Integer to Roman
- Jesque 基础入门
- 织梦dedecms时间日期标签大全的方法
- 图像滤波
- PHP函数
- WIN10或WIN8.1系统下MDK“the arm c/c++ compiler 已停止工作”解决办法之一
- POJ -2635-The Embarrassed Cryptographer-数论
- Netty之有效规避内存泄漏