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. 关于vue生命周期中的同步异步的理解

    在vue官网中介绍生命周期的图如下: 主要测试代码如下: 主要是测试前四个生命周期beforeCreate,created,beforeMount,mounted,里面同步和异步的执行顺序,其它的类似 ...

  2. hdu4638

    hdu4638 题意 给定一个序列,序列由1-N个元素全排列而成,求任意区间可组成的连续的段数,比如[1,2,4]两段{[1,2],[4]},[1,2,4,3]一段{[1,2,3,4]}. 对于查询的 ...

  3. Asp.Net Core轻量级Aop解决方案:AspectCore

    什么是AspectCore Project ? AspectCore Project 是适用于Asp.Net Core 平台的轻量级 Aop(Aspect-oriented programming) ...

  4. Dubbo有意思的特性介绍

    Duboo 不单让我们可以像使用本地服务一样的使用远程服务,还设计了很多特性来满足我们平时开发时常见的场景,省却了我们不少麻烦,真是一款有良心的框架,下面针对这些场景和解决方案来具体解释下: 1.接口 ...

  5. 关于Python中yield的一些个人见解

    # 样例代码def yield_test(n): for i in range(n): yield call(i) print("i=",i) #做一些其它的事情 print(&q ...

  6. python+selenium遇到鼠标悬停不成功可以使用js进行操作

    问题:在定位这种悬停后出现下拉操作的时候,尝试了使用move_to_element的方法 # ele_logout = br.find_element_by_xpath('/html/body/div ...

  7. 用php+mysql+ajax实现淘宝客服或阿里旺旺聊天功能 之 前台页面

    首先来看一下我已经实现的效果图: 消费者页面:(本篇随笔) (1)会显示店主的头像 (2)当前用户发送信息显示在右侧,接受的信息,显示在左侧 店主或客服页面:(下一篇随笔) (1)在左侧有一个列表 , ...

  8. Ubuntu下Tomcat初始配置

    1.下载tomcat安装包 从tomcat官方网站http://tomcat.apache.org下载安装包,然后解压到某个目录,比如: ~/opt/apache-tomcat-7.0.63官方文档中 ...

  9. 关于Javascript循环体变量声明与初始化的效率问题

    针对循环体变量声明与初始化的效率问题,将执行的简单测试代码如下: function test(n) { console.time('Internally initialized'); for (var ...

  10. PHP的魔法方法

    PHP将所有以__(两个下划线)开头的类方法保留为魔术方法.所以在定义方法是,除了魔术方法,建议不要用两个下划线前缀. 魔术方法(Magic methods)有 __construct(),__des ...