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. WPF自动更新程序

    WPF AutoUpdater 描述: WPF+MVVM实现的自动更新程序 支持更新包文件验证(比较文件MD5码) 支持区分x86与x64程序的更新 支持更新程序的版本号 支持执行更新策略 截图: 使 ...

  2. Github 开源:升讯威 Winform 开源控件库( Sheng.Winform.Controls)

    Github 地址:https://github.com/iccb1013/Sheng.Winform.Controls 本控件库中的代码大约写于10年前(2007年左右),难免有不成熟与欠考虑之处, ...

  3. Jenkins修改管理员密码

    前言:Jenkins修改管理员密码,我看了网上所有的教程,竟然全都是拿着一串已经加密好的111111的密文去替代config.xml文件里面的密码,然后大家的密码都是111111!我觉得这种做法实在太 ...

  4. NFS文件共享

    NFS文件共享 简介 NFS即网络文件系统(network file system),监听在TCP 2049端口. 服务器需要记住客户端的ip地址以及相应的端口信息,这些信息可以委托给RPC(remo ...

  5. CSS小技巧-煎蛋的画法~

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. Java中设计模式之生产者消费者模式-4

    引言 生产者-消费者(producer-consumer)问题,也称作有界缓冲区(bounded-buffer)问题,两个进程共享一个公共的固定大小的缓冲区.其中一个是生产者,用于将消息放入缓冲区:另 ...

  7. Yii2中限制访问某控制器的IP(IP白名单)

    有关Yii2.0鉴权之访问控制过滤器参考这篇文章  http://www.yiiframework.com/doc-2.0/guide-security-authorization.html 这里主要 ...

  8. HTML表格表单综合——用户注册表

    今天学习了表格和表单知识,我综合了他们添加了一些拓展知识做了一个用户注册表,以下面代码来整理表格和表单知识: <!DOCTYPE html PUBLIC "-//W3C//DTD XH ...

  9. java面试题之int和Integer的区别

    int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象的引 ...

  10. leetcode算法题(JavaScript实现)

    题外话 刷了一段时间的codewars的JavaScript题目之后,它给我最大的感受就是,会帮助你迅速的提升你希望练习的语言的API的熟悉程度,Array对象.String对象等原生方法,构造函数. ...