1.实例化

TableListsTask task = new TableListsTask(ServerIP,"ALL", MenuActivity.this);
  //第三参数建立上下文关系

2.TableListsTask.java

package com.realhope.rmeal.ui;

import static com.realhope.rmeal.service.ConstantUtil.SERVER_ADDRESS;

import static com.realhope.rmeal.service.ConstantUtil.SERVER_PORT;

import android.content.Context; import android.os.AsyncTask;

import android.util.Log;

import com.realhope.rmeal.bean.TableLists;

import com.realhope.rmeal.util.MyUtil;

 /**异步任务  方法:menuactivity 获取台列表   * 2014-7-31   * @author Wucy   *   */

public class TableListsTask extends AsyncTask<String, Integer, String> {               

     //onPreExecute方法用于在执行后台任务前做一些UI操作        

   private static final String TAG = "ASYNC_TableListsTASK";  

private MyConnector mc = null;

  private final Context mContext;

  String mtable_no,mServerIP;  

  public TableListsTask(String ServerIP,String table_no,  Context context){   

  super();

    mContext = context;  

   mtable_no =table_no;    

mServerIP=ServerIP;   }      

    @Override   

      protected void onPreExecute() {    

         Log.i(TAG, "onPreExecute() called");          // MyUtil.showToast(OrderActivity.this, "数据上传...");         // textView.setText("loading...");             //button_toOrder.setText("正在查询....");      }                                                                                                                                                                  

//doInBackground方法内部执行后台任务,不可在此方法内修改UI             

   @Override  

   protected String doInBackground(String... params) {    

   Log.i(TAG, "doInBackground(Params... params) called");     

     try{

                if(mc == null){  

        mc = new MyConnector(mServerIP, SERVER_PORT);      

       }        

     String msg = "<#GET_TABLELIST#>"+ mtable_no;   

     mc.dout.writeUTF(msg); //发出获取台表请求   

     mc.dout.flush();     

     int size = mc.din.readInt();   //获取个数        

      mc.dout.writeUTF("<#READY_TO_READ_COMMENT#>");      

     mc.dout.flush();  

     for(int i=0;i<size;i++){   

     msg = mc.din.readUTF();  //读取每条信息        

    String [] sa = msg.split("\\|"); //切割字符串   

    TableLists tablelists = new TableLists(Integer.valueOf(sa[0]),Integer.valueOf(sa[1]),sa[2],Integer.valueOf(sa[3]),Integer.valueOf(sa[4]),Integer.valueOf(sa[5]));

          ((MenuActivity)mContext).lstDate_TableLists.add(tablelists);        

       }    

 mc=null;

    return  String.valueOf(1);     

          } catch (Exception e) { 

               Log.e(TAG, e.getMessage());                        }      

     return null;                                                         

    }                                                                                                                                                         //onProgressUpdate方法用于更新进度信息                                       @Override                                                                  

  protected void onProgressUpdate(Integer... progresses) {            

          Log.i(TAG, "onProgressUpdate(Progress... progresses) called");        

  }                                                                                                                                                         //onPostExecute方法用于在执行完后台任务后更新UI,根据后台下单结果重新绑定前台订单                     @Override                                                                   

protected void onPostExecute(String result) {       

         Log.i(TAG, "onPostExecute(Result result) called");     

         MyUtil.showToast(mContext, "取后台开台信息数据");   

       ((MenuActivity)mContext).updateTableLists();                                         }                                                                                                                                                      //onCancelled方法用于在取消执行中的任务时更改UI       

 @Override  

protected void onCancelled() {        

              Log.i(TAG, "onCancelled() called");     

        }

   }

AsyncTask onPreExecute方法用于在执行后台任务前做一些UI操作的更多相关文章

  1. xtrabackup拷贝redolog前做的细节操作

    原文地址:http://www.innomysql.net/article/25590.html 前言 淘宝3月的数据库内核月报对 xtrabackup的备份原理 做了深入的分析,写的还是很不错.不过 ...

  2. 重读《深入理解Java虚拟机》五、虚拟机如何执行字节码?程序方法如何被执行?虚拟机执行引擎的工作机制

    Class文件二进制字符流通过类加载器和虚拟机加载到内存(方法区)完成在内存上的布局和初始化后,虚拟机字节码执行引擎就可以执行相关代码实现程序所定义的功能.虚拟机执行引擎执行的对象是方法(均特指非本地 ...

  3. MySQL提供了以下三种方法用于获取数据库对象的元数据

    MySQL提供了以下三种方法用于获取数据库对象的元数据: 1)show语句 2)从INFORMATION_SCHEMA数据库里查询相关表 3)命令行程序,如mysqlshow, mysqldump 用 ...

  4. spring mvc @ModelAttribute 每次执行requestmapping前自动执行

    在不少应用场景中,我们希望在每次执行requestmapping前自动执行一些操作,比如把某些数据(比如数据字典.系统配置.标准错误号,这在企业应用系统中极为常见)塞到model中供view访问,因为 ...

  5. 执行后台任务的利器——Hangfire

    今年1月31日,在微软的MVP 2015社区大讲堂上,我给大家分享了一个演讲:在ASP.NET应用中执行后台任务.其中介绍了三种技术的应用:QueueBackgroundWorkItem.Hangfi ...

  6. Exporter - 实现默认的导入方法用于模块

    Exporter - 实现默认的导入方法用于模块 简介: In module YourModule.pm: package YourModule; require Exporter; @ISA = q ...

  7. 项目总结03:window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口

    window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口 项目中经常遇到一个业务逻辑:在A窗口中打开B窗口,在B窗口中操作完以后关闭B窗口,同时自动刷新A窗口(或局部更新A窗口)( ...

  8. then()方法是异步执行

    then()方法是异步执行 就是当.then()前的方法执行完后再执行then()内部的程序 这样就避免了,数据没获取到等的问题

  9. 【转】 Pro Android学习笔记(九五):AsyncTask(4):执行情况

    目录(?)[-] 两个AsyncTask对象的运行情况 多次执行的异常 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/ ...

随机推荐

  1. [netty源码分析]3 eventLoop 实现类SingleThreadEventLoop职责与实现

    eventLoop是基于事件系统机制,主要技术由线程池同队列组成,是由生产/消费者模型设计,那么先搞清楚谁是生产者,消费者内容 SingleThreadEventLoop 实现 public abst ...

  2. ArrayList源码解析(四)

    这篇文章主要看ArrayList的Iterator和ListIterator的实现. 1.Iterator和类Itr 当我们调用iterator方法时返回一个Iterator. /** * Retur ...

  3. 【2017-06-05】Jquery.ajax

    AJAX  是一种网页数据异步加载技术 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 一.Json     ...

  4. vue入门须知

    1.vue基本结构 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> & ...

  5. Python初探

    Q:DBA是运维数据库,为什么还要懂开发? A: 维护:维护的机器太多了,很多重复的操作,需要开发出工具来实现 监控:所有机器的运行情况和健康状况都需要了解,全盘掌握cup.内存.磁盘.网络流量.数据 ...

  6. 实现UDP高效接收/响应

    环境Linux g++6.3.0 问题一:一个ip地址如何接收高并发请求 问题二:如何高并发响应消息 发送请求端只能通过ip地址+端口号向服务器发送请求码,所以服务器只能用一个UDP去绑定此ip以及端 ...

  7. java面试笔试大汇总

    java面试笔试题大汇总5 JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象:2.继承:3.封装:4. 多态性: 2.String是最基本的数据类型吗? 基本数据类型包括byte.int. ...

  8. ztree学习笔记(一)

    在项目当中,经常会用到ztree树形插件,之前做的几个项目当中都用到了这个插件,感觉功能还是很强大的,而且在网上还找到了中文的API,因为项目中的树形结构不是自己做的,所以现在从头学习一下,并且记录一 ...

  9. (cljs/run-at (->JSVM :browser) "语言基础")

    前言  两年多前知道cljs的存在时十分兴奋,但因为工作中根本用不上,国内也没有专门的职位于是搁置了对其的探索.而近一两年来又刮起了函数式编程的风潮,恰逢有幸主理新项目的前端架构,于是引入Ramda. ...

  10. 浅尝JavaScript document对象

    document对象 每个载入浏览器的 HTML 文档都会成为 Document 对象.document 对象是HTML文档的根节点与所有其他节点(元素节点,文本节点,属性节点, 注释节点).Docu ...