AsyncTask onPreExecute方法用于在执行后台任务前做一些UI操作
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操作的更多相关文章
- xtrabackup拷贝redolog前做的细节操作
原文地址:http://www.innomysql.net/article/25590.html 前言 淘宝3月的数据库内核月报对 xtrabackup的备份原理 做了深入的分析,写的还是很不错.不过 ...
- 重读《深入理解Java虚拟机》五、虚拟机如何执行字节码?程序方法如何被执行?虚拟机执行引擎的工作机制
Class文件二进制字符流通过类加载器和虚拟机加载到内存(方法区)完成在内存上的布局和初始化后,虚拟机字节码执行引擎就可以执行相关代码实现程序所定义的功能.虚拟机执行引擎执行的对象是方法(均特指非本地 ...
- MySQL提供了以下三种方法用于获取数据库对象的元数据
MySQL提供了以下三种方法用于获取数据库对象的元数据: 1)show语句 2)从INFORMATION_SCHEMA数据库里查询相关表 3)命令行程序,如mysqlshow, mysqldump 用 ...
- spring mvc @ModelAttribute 每次执行requestmapping前自动执行
在不少应用场景中,我们希望在每次执行requestmapping前自动执行一些操作,比如把某些数据(比如数据字典.系统配置.标准错误号,这在企业应用系统中极为常见)塞到model中供view访问,因为 ...
- 执行后台任务的利器——Hangfire
今年1月31日,在微软的MVP 2015社区大讲堂上,我给大家分享了一个演讲:在ASP.NET应用中执行后台任务.其中介绍了三种技术的应用:QueueBackgroundWorkItem.Hangfi ...
- Exporter - 实现默认的导入方法用于模块
Exporter - 实现默认的导入方法用于模块 简介: In module YourModule.pm: package YourModule; require Exporter; @ISA = q ...
- 项目总结03:window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口
window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口 项目中经常遇到一个业务逻辑:在A窗口中打开B窗口,在B窗口中操作完以后关闭B窗口,同时自动刷新A窗口(或局部更新A窗口)( ...
- then()方法是异步执行
then()方法是异步执行 就是当.then()前的方法执行完后再执行then()内部的程序 这样就避免了,数据没获取到等的问题
- 【转】 Pro Android学习笔记(九五):AsyncTask(4):执行情况
目录(?)[-] 两个AsyncTask对象的运行情况 多次执行的异常 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/ ...
随机推荐
- WPF自动更新程序
WPF AutoUpdater 描述: WPF+MVVM实现的自动更新程序 支持更新包文件验证(比较文件MD5码) 支持区分x86与x64程序的更新 支持更新程序的版本号 支持执行更新策略 截图: 使 ...
- Github 开源:升讯威 Winform 开源控件库( Sheng.Winform.Controls)
Github 地址:https://github.com/iccb1013/Sheng.Winform.Controls 本控件库中的代码大约写于10年前(2007年左右),难免有不成熟与欠考虑之处, ...
- Jenkins修改管理员密码
前言:Jenkins修改管理员密码,我看了网上所有的教程,竟然全都是拿着一串已经加密好的111111的密文去替代config.xml文件里面的密码,然后大家的密码都是111111!我觉得这种做法实在太 ...
- NFS文件共享
NFS文件共享 简介 NFS即网络文件系统(network file system),监听在TCP 2049端口. 服务器需要记住客户端的ip地址以及相应的端口信息,这些信息可以委托给RPC(remo ...
- CSS小技巧-煎蛋的画法~
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Java中设计模式之生产者消费者模式-4
引言 生产者-消费者(producer-consumer)问题,也称作有界缓冲区(bounded-buffer)问题,两个进程共享一个公共的固定大小的缓冲区.其中一个是生产者,用于将消息放入缓冲区:另 ...
- Yii2中限制访问某控制器的IP(IP白名单)
有关Yii2.0鉴权之访问控制过滤器参考这篇文章 http://www.yiiframework.com/doc-2.0/guide-security-authorization.html 这里主要 ...
- HTML表格表单综合——用户注册表
今天学习了表格和表单知识,我综合了他们添加了一些拓展知识做了一个用户注册表,以下面代码来整理表格和表单知识: <!DOCTYPE html PUBLIC "-//W3C//DTD XH ...
- java面试题之int和Integer的区别
int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象的引 ...
- leetcode算法题(JavaScript实现)
题外话 刷了一段时间的codewars的JavaScript题目之后,它给我最大的感受就是,会帮助你迅速的提升你希望练习的语言的API的熟悉程度,Array对象.String对象等原生方法,构造函数. ...