1.使用AndBase实现单线程任务...
public void ThreadClick(View v){ //单个线程执行任务... //创建一个线程对象.. AbThread thread=new AbThread(); //定义一个任务对象... final AbTaskItem item=new AbTaskItem(); item.listener=new AbTaskListener(){ @Override public void update(){ showToast("执行完成"); } @Override public void get(){ //耗时的操作... showToastInThread("开始执行");//这步必须使用一个线程来显示Toast框..因为当前线程已经去处理当前任务了.. try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }; }; thread.execute(item); //向处理线程中加入任务.. }
public void TaskClick(View v){ //异步任务执行.. AbTask task=new AbTask(); //定义任务对象... AbTaskItem item=new AbTaskItem(); item.listener=new AbTaskListener(){ @Override public void get(){ showToastInThread("开始执行"); try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void update(){ showToast("执行完成"); } }; task.execute(item); }
2.使用AndBase实现多线程任务...
public void QueueClick(View v){ //线程任务队列... AbTaskQueue queue=new AbTaskQueue(); //定义一个任务.. AbTaskItem item=new AbTaskItem(); AbTaskItem item_1=new AbTaskItem(); item.listener=new AbTaskListener(){ @Override public void update(){ showToast("执行完成"); } @Override public void get(){ showToastInThread("任务执行1"); try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; item_1.listener=new AbTaskListener(){ @Override public void update(){ showToast("执行完成"); } @Override public void get(){ showToastInThread("任务执行2"); try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; queue.execute(item); queue.execute(item_1); //强制停止.. // queue.quit(); //强制停止前面的请求.. // queue.execute(item_1, true); }
public void PoolClick(View v){ //任务线程池... AbTaskPool pool=AbTaskPool.getInstance(); AbTaskItem item=new AbTaskItem(); AbTaskItem item_1=new AbTaskItem(); item.listener=new AbTaskListener(){ @Override public void get(){ showToastInThread("开始执行1"); try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void update(){ removeProgressDialog(); showToast("执行完成1"); } }; item_1.listener=new AbTaskListener(){ @Override public void get(){ showToastInThread("开始执行2"); try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void update(){ removeProgressDialog(); showToast("任务完成2"); } }; pool.execute(item); pool.execute(item_1); }