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");

}

}

时间: 2024-11-13 12:18:16

AsyncTask onPreExecute方法用于在执行后台任务前做一些UI操作的相关文章

xtrabackup拷贝redolog前做的细节操作

原文地址:http://www.innomysql.net/article/25590.html 前言 淘宝3月的数据库内核月报对 xtrabackup的备份原理 做了深入的分析,写的还是很不错.不过Inside君在看完之后,感觉没有对一个细节问题进行比较深入的介绍.而此问题可能会导致备份文件恢复后丢失相关数据,之前Inside君在 MySQL 5.6对于Xtrabackup的影响 一文中已经做了简单的说明,今天借着淘宝数据库内核组的文章再拿来提醒下各位小伙伴.Inside君还是先给出结论:尽可

[ jquery 效果 delay(duration,[queueName]) ] 此方法用于对队列中的下一项的执行设置延迟

此方法用于对队列中的下一项的执行设置延迟 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content=''.animation' is my page'> <meta http-equiv='keywords' content='keyword1,keyw

[ jquery 文档处理 append(content|fn) ] 此方法用于向每个匹配的元素内部追加内容,这个操作与javascript对指定的元素执行appendChild方法,将它们添加到文档中的情况类似

此方法用于向每个匹配的元素内部追加内容,这个操作与javascript对指定的元素执行appendChild方法,将它们添加到文档中的情况类似 参数解释如下: content 要追加到目标中的内容 function(index, html) 返回一个HTML字符串,用于追加到每一个匹配元素的里边.接受两个参数,index参数为对象在这个集合中的索引值,html参数为这个对象原先的html值. 实例: <html lang='zh-cn'> <head> <title>I

android AsyncTask 使用方法

AsyncTask和Handler对比 1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. 使用的优点: l  简单,快捷 l  过程可控 使用的缺点: l  在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来. 2 )Handler异步实现的原理和适用的优缺点 在Handler

执行后台任务的利器&mdash;&mdash;Hangfire

今年1月31日,在微软的MVP 2015社区大讲堂上,我给大家分享了一个演讲:在ASP.NET应用中执行后台任务.其中介绍了三种技术的应用:QueueBackgroundWorkItem.Hangfire和Azure WebJobs.当时由于时间关系,对三者都是简要介绍.今天想和大家着重介绍下Hangfire. Hangfire是一个开源且商业免费使用的工具函数库.可以让你非常容易地在ASP.NET应用(也可以不在ASP.NET应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于Wind

window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口

window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口 项目中经常遇到一个业务逻辑:在A窗口中打开B窗口,在B窗口中操作完以后关闭B窗口,同时自动刷新A窗口(或局部更新A窗口)(或将数据传回A窗口) 以下是从实际项目中截取出来和window.open()方法相关的代码,业务逻辑如下: 1. 点击父窗口的div标签(id="addMatchSchedule"),出发点击事件,打开子窗口: 2. 点击子窗口的button按钮,触发点击时间,即调用addSchduleI

[ jquery 效果 show([speed,[easing],[fn]]) hide([speed,[easing],[fn]]) ] 此方法用于显示隐藏的被选元素:show() 适用于通过 jQuery 方法和 CSS 中 display:none type=&#39;hidden&#39; 隐藏的元素(不适用于通过 visibility:hidden 隐藏的元素)

show()显示隐藏的被选元素:show() 适用于通过 jQuery 方法和 CSS 中 display:none type='hidden' 隐藏的元素(不适用于通过 visibility:hidden 隐藏的元素): hide() 方法隐藏被选元素: 参数 描述 speed 可选.规定显示效果的速度. 可能的值: 毫秒 "slow" "fast" easing 可选.规定在动画的不同点上元素的速度.默认值为 "swing". 可能的值: &

[ jquery 效果 slideDown([speed,[easing],[fn]]) slideUp([speed,[easing],[fn]]) ] 此方法用于滑动显示隐藏的被选元素:动画效果只调整元素的高度,可以使匹配的元素以“滑动”的方式显示出来。在jQuery 1.3中,上下的padding和margin也会被有动画,效果更流畅

此方法用于滑动显示隐藏的被选元素:动画效果只调整元素的高度,可以使匹配的元素以“滑动”的方式显示出来.在jQuery 1.3中,上下的padding和margin也会被有动画,效果更流畅 实例: <!DOCTYPE html><html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my

在ASP.NET应用中执行后台任务

为什么要在ASP.NET应用中执行后台任务? 主要是考虑使用后台任务来处理CPU或IO密集的计算. 下面是一些常见的后台任务: 大量的提醒和新闻邮件发送 图片和视频处理(比如批量创建缩略图.格式转换) 从外部文件导入大量数据或导出数据(RSS聚合) 文件操作(创建归档.清理临时文件.日志文件维护) 定时生成自动化报告 数据库维护 -- ASP.NET不知道任何后台线程比如一个计时器或者其他,它只知道和request相关的操作.事实上,在后台长时间的运行某些任务实在不是web server该做的事