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. 用sftp上传文件至linux服务器

    1.项目环境 框架:springmvc    项目管理工具:maven 2.必须使用的jar com.jcraft jsch 0.1.27 test 3.新建一个FileUpDown工具类,在类中添加 ...

  2. RGB565的理解

    一个彩色图像由R G B三个分量组成,一个RGB565的每一个像素点数据为2Byte,即16位,那么从名字上就可看出来这16位中,高5位为R分量,中间6位为G分量,低5位为B分量. 下面做了一个实验, ...

  3. Generating Sankey Diagrams from rCharts

    A couple of weeks or so ago, I picked up an inlink from an OCLC blog post about Visualizing Network ...

  4. Http状态码大全(来自菜鸟教程)

    HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准. HTTP是一个基于TCP/IP通信 ...

  5. centos6.5 修改java环境变量

    [root@m1 ~]# cat /etc/profile export JAVA_HOME=/usr/local/soft/jdkexport PATH=$JAVA_HOME/bin:$PATH e ...

  6. 什么样的PPT能助你成为一个优秀的演讲者——程序员的演讲之道

    欢迎访问我的个人博客,原文链接:http://wensibo.top/2017/05/28/speaker/ ,未经允许不得转载! 前言 今天是端午节假期的第一天,在这里祝大家假期快乐,不过像我这种渣 ...

  7. 入职这一段时间的总结,Don't Repeat Yourself.

    1.第一次接触到大型软件系统的开发,现在我们使用的是 python + flask +vue.js ,数据库:postgresql 2. 不要在自己不懂的情况下复制代码,每次分析一段代码的时候,就跟以 ...

  8. php 二级级联菜单

    找了很多个级联的菜单,都不好用,自己弄个简单点的,共享下,希望有朋友用得着 <?php //建立表country,有三个字段Id,parentId,area. $pro = $_POST['pr ...

  9. Java IO流之缓冲流

    一.缓冲流简介 二.BufferedInputStream 三.其他三种缓冲流

  10. linq中给字段添加别名

    linq 是我们在查询中经常回用到的一种形式,比如我们创建一个类,然后List<添加> 并绑定到表格中 public class Modeltest { string id; public ...