1.实例化

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

2.TableListsTask.java

  1. package com.realhope.rmeal.ui;
  2.  
  3. import static com.realhope.rmeal.service.ConstantUtil.SERVER_ADDRESS;
  4.  
  5. import static com.realhope.rmeal.service.ConstantUtil.SERVER_PORT;
  6.  
  7. import android.content.Context; import android.os.AsyncTask;
  8.  
  9. import android.util.Log;
  10.  
  11. import com.realhope.rmeal.bean.TableLists;
  12.  
  13. import com.realhope.rmeal.util.MyUtil;
  14.  
  15. /**异步任务 方法:menuactivity 获取台列表 * 2014-7-31 * @author Wucy * */
  16.  
  17. public class TableListsTask extends AsyncTask<String, Integer, String> {
  18.  
  19. //onPreExecute方法用于在执行后台任务前做一些UI操作
  20.  
  21. private static final String TAG = "ASYNC_TableListsTASK";
  22.  
  23. private MyConnector mc = null;
  24.  
  25. private final Context mContext;
  26.  
  27. String mtable_no,mServerIP;
  28.  
  29. public TableListsTask(String ServerIP,String table_no, Context context){
  30.  
  31. super();
  32.  
  33. mContext = context;
  34.  
  35. mtable_no =table_no;
  36.  
  37. mServerIP=ServerIP; }
  38.  
  39. @Override
  40.  
  41. protected void onPreExecute() {
  42.  
  43. Log.i(TAG, "onPreExecute() called"); // MyUtil.showToast(OrderActivity.this, "数据上传..."); // textView.setText("loading..."); //button_toOrder.setText("正在查询...."); }
  44.  
  45. //doInBackground方法内部执行后台任务,不可在此方法内修改UI
  46.  
  47. @Override
  48.  
  49. protected String doInBackground(String... params) {
  50.  
  51. Log.i(TAG, "doInBackground(Params... params) called");
  52.  
  53. try{
  54.  
  55. if(mc == null){
  56.  
  57. mc = new MyConnector(mServerIP, SERVER_PORT);
  58.  
  59. }
  60.  
  61. String msg = "<#GET_TABLELIST#>"+ mtable_no;
  62.  
  63. mc.dout.writeUTF(msg); //发出获取台表请求
  64.  
  65. mc.dout.flush();
  66.  
  67. int size = mc.din.readInt(); //获取个数
  68.  
  69. mc.dout.writeUTF("<#READY_TO_READ_COMMENT#>");
  70.  
  71. mc.dout.flush();
  72.  
  73. for(int i=0;i<size;i++){
  74.  
  75. msg = mc.din.readUTF(); //读取每条信息
  76.  
  77. String [] sa = msg.split("\\|"); //切割字符串
  78.  
  79. 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]));
  80.  
  81. ((MenuActivity)mContext).lstDate_TableLists.add(tablelists);
  82.  
  83. }
  84.  
  85. mc=null;
  86.  
  87. return String.valueOf(1);
  88.  
  89. } catch (Exception e) {
  90.  
  91. Log.e(TAG, e.getMessage()); }
  92.  
  93. return null;
  94.  
  95. } //onProgressUpdate方法用于更新进度信息 @Override
  96.  
  97. protected void onProgressUpdate(Integer... progresses) {
  98.  
  99. Log.i(TAG, "onProgressUpdate(Progress... progresses) called");
  100.  
  101. } //onPostExecute方法用于在执行完后台任务后更新UI,根据后台下单结果重新绑定前台订单 @Override
  102.  
  103. protected void onPostExecute(String result) {
  104.  
  105. Log.i(TAG, "onPostExecute(Result result) called");
  106.  
  107. MyUtil.showToast(mContext, "取后台开台信息数据");
  108.  
  109. ((MenuActivity)mContext).updateTableLists(); } //onCancelled方法用于在取消执行中的任务时更改UI
  110.  
  111. @Override
  112.  
  113. protected void onCancelled() {
  114.  
  115. Log.i(TAG, "onCancelled() called");
  116.  
  117. }
  118.  
  119. }

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. 教育类APP开发现新增长,多款APP该如何突围?

    "十二五"以来,国家共出台相关的重大教育政策文件741个,而进入到"十三五"时期教育领域综合改革深入推进的关键期,不断促进教育现代化的实现.加快迈入人力资源强国 ...

  2. [编织消息框架][netty源码分析]2 eventLoop

    eventLoop从命名上看是专门处理事件 事件系统主要由线程池同队列技术组成,有以下几个优点 1.任务出队有序执行,不会出现错乱,当然前提执行线程池只有一个 2.解偶系统复杂度,这是个经典的生产者/ ...

  3. 每天一道Java题[11]

    题目 synchronized怎么实现线程同步?请修改<每天一道Java题[10]>中的MyRunnableThread类以解决三个线程都获取到10的问题. 解答 方法一: 采用synch ...

  4. Kotlin入门第三课:数据类型

    前文链接: Kotlin学习第一课:从对比Java开始 Kotlin入门第二课:集合操作 初次尝试用Kotlin实现Android项目 Kotlin的数据类型与Java类似,因此这篇文章主要看Kotl ...

  5. MySQL数据库安全策略

    1. 删除所有MySQL中的用户(包括root用户): mysql> delete from mysql.user root可以保留,然后修改为其他用户 2. 为管理员root用户设置密码 : ...

  6. 安装配置rsync服务端

    rsync是类unix系统下的数据镜像备份工具——remote sync.一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH.rsync主机同步. rsync使用方 ...

  7. [HDU1001] Sum Problem

    Problem Description Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge). In this problem, ...

  8. 【Python的迭代器,生成器】

    一.可迭代对象和迭代器 1.迭代的概念 上一次输出的结果为下一次输入的初始值,重复的过程称为迭代,每次重复即一次迭代,并且每次迭代的结果是下一次迭代的初始值 注:循环不是迭代 while True: ...

  9. 一些java考过的测试题和自己制作模拟服务端和客户端

    媒体 1,java环境变量: PATH: .;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;  CLASSPATH: .;%JAVA_HOME%\jre\lib\rt.jar ...

  10. MVC4加载zTree树小控件

    前言: 第一次学习使用MVC框架,找了个练手项目,加载zTree树小控件.下面我就一步步说明我这次练手的经历以记录.如果有什么错误,希望各位大神帮忙指正,谢谢. 第一步: 利用VS2010新建一个MV ...