2015.01.15(android AsyncTask)

参考网址:http://www.cnblogs.com/devinzhang/archive/2012/02/13/2350070.html

 1 /*
 2  *     Params 启动任务执行的输入参数,比如HTTP请求的URL。
 3  *  Progress 后台任务执行的百分比。
 4  *  Result 后台执行任务最终返回的结果,比如String
 5  *
 6  *  doInBackground(Params…) :后台执行,比较耗时的操作都可以放在这里。注意这里不能直接操作UI。
 7  *                              此方法在后台线程执行,完成任务的主要工作,通常需要较长的时间。
 8  *                              在执行过程中可以调用publicProgress(Progress…)来更新任务的进度。
 9  *  onPostExecute(Result)      :相当于Handler 处理UI的方式,在这里面可以使用在doInBackground 得到的结果处理操作UI。
10  *                              此方法在主线程执行,任务执行的结果作为此方法的参数返回
11  *
12  *  有必要的话你还得重写以下这三个方法,但不是必须的:
13  *      onProgressUpdate(Progress…)       可以使用进度条增加用户体验度。 此方法在主线程执行,用于显示任务执行的进度。
14  *      onPreExecute()                    这里是最终用户调用Excute时的接口,当任务执行之前开始调用此方法,可以在这里显示进度对话框。
15  *      onCancelled()                     用户调用取消时,要做的操作
16  */
17     public class MyAsyncTask extends AsyncTask<String, Integer, List<Product>>
18     {
19         @Override
20         protected void onPreExecute()
21         {
22             Toast.makeText(getApplicationContext(), "开始加载", Toast.LENGTH_SHORT).show();
23             super.onPreExecute();
24         }
25
26         // * 后台运行耗时操作,不能直接操作主UI线程里面的数据,通过函数publishProgress和onProgressUpdate间接操作主UI线程里面的数据
27         @Override
28         protected List<Product> doInBackground(String... params)
29         {
30             // 获取产品列表,不能操作主UI线程内的数据
31             List<Product> temProducts = new GetProductService().getProduct(page);
32 //            for( Integer i = 0; i < 3; ++i )
33 //            {
34 //                publishProgress(i);        // 通过调用该函数通知 onProgressUpdate并且在onProgressUpdate中可以修改UI主线程中的参数
35 //            }
36             return temProducts;
37         }
38
39         // * 子线程中调用publishProgress函数通知此函数操作主UI线程中的数据(主要是进度条数据)
40         @Override
41         protected void onProgressUpdate(Integer... values)
42         {
43             int vlaue = values[0];     // 获取主线程中调用 publisProgress 传递过来的进度值
44             Toast.makeText(getApplicationContext(), "加载进度:" + vlaue, Toast.LENGTH_LONG).show();
45             super.onProgressUpdate(values);
46         }
47
48 //           相当于Handler 处理UI的方式,在这里面可以使用在doInBackground 得到的结果处理操作UI。此方法在主线程执行,任务执行的结果作为此方法的参数返回
49 //        这里的product参数对应AsyncTask中的第三个参数(也就是接收doInBackground的返回值)
50 //           在doInBackground方法执行结束之后在运行,并且运行在UI线程当中 可以对UI空间进行设置
51         @Override
52         protected void onPostExecute(List<Product> product)
53         {
54             Toast.makeText(getApplicationContext(), "加载完毕", Toast.LENGTH_LONG).show();
55             ListUtil.products = products;        // 获取产品列表对象
56             isLoading = false;                    // 设置加载标志状态位:加载完毕
57
58             adapter.setProducts(product);
59             adapter.notifyDataSetChanged();
60             if( product.size() == 0 )
61             {
62                 Toast.makeText(getApplicationContext(), "已经加载完毕", Toast.LENGTH_LONG).show();
63                 productListView.removeFooterView(footView);
64                 isLoading = true;
65             }
66         }
67
68         @Override
69         protected void onCancelled(List<Product> result)
70         {
71             super.onCancelled(result);
72         }
73     }
时间: 2024-10-25 00:35:44

2015.01.15(android AsyncTask)的相关文章

TYVJ 采药 0-1背包(水题)

背景 Background NOIP2005复赛普及组第三题 描述 Description 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值.我会给你一段时间,在这段时间里,你可以采到一些草药.如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大.” 如果你是辰辰,你能完成这个任务

推荐下载App,如果本地安装则直接打开本地App(Android/IOS)

推荐下载App,如果本地安装则直接打开本地App(Android/IOS) - 纵观现在每家移动网站,打开首页的时候,都有各种各样的形式来提示你下载自身的移动App(Android/IOS),这是做移动客户端产品的一个很好地引流的手段.当然各家引流下载的交互和视觉各不相同,有的是完全“强奸”用户,有的是完全取悦用户.但是最终的形式就是你点击一个按钮之后,可以去下载对应的App(Android直接下载对应的Apk文件,IOS会跳转到App store的对应地址). 之前开发这个需求的时候,就是很简

quick cocos2d x 手机(Android端)启动过程学习

简要学习下quick cocos2d x 在安卓端启动的过程. 首先需要了解一点:quick cocos2d x是依托于Android的activity和GLSurfaceView(继承自SurfaceView)的环境来显示quick层的游戏界面. (1)首先quick类的android游戏从AndroidManifest.xml文件指定的activity(假设AC)启动. (2)AC继承父类的Cocos2dxActivity. (3)调用静态初始化块,加载cocos2dx的动态库.也就是一些C

01背包问题(回溯法)python实现

接上一篇,同样的01背包问题,上一篇采用动态规划的方法,现在用回溯法解决.回溯法采用深度优先策略搜索问题的解,不多说,代码如下: bestV=0 curW=0 curV=0 bestx=None def backtrack(i): global bestV,curW,curV,x,bestx if i>=n: if bestV<curV: bestV=curV bestx=x[:] else: if curW+w[i]<=c: x[i]=True curW+=w[i] curV+=v[i

(Android Studio)ActionBar&#39;s Theme/Style [ActionBar主题风格修改]

默认theme代码如下: 运行结果: 视觉效果:ActionBar为Dark,其余文本为Light. 将theme改为Light: 运行结果: 视觉效果:ActionBar和文本都为Light. (Android Studio)ActionBar's Theme/Style [ActionBar主题风格修改]

Appium-001-测试开发环境搭建(Android - Win7)

随着移动端 App 测试自动化的兴起,为更好的控制产品质量,越来越多的中大型公司开始了移动端的自动化测试.Appium 自动化测试技术也是我很早之前就想学习的一门技术,却一直没有比较空余的时间来学习(也许是自己懒得缘故吧 ^_^),自今天开始我将开始自己的移动端 UI 自动化测试之旅. Appium 相关的概要说明介绍,请各位朋友联系度娘或顾大爷,在此不再赘述.俗话说,工欲善其事必先利其器,因而此文主要讲述 Appium 在 Win 7 系统下 Android  UI 测试开发环境搭建相关问题.

0-1背包问题(递归实现)

</pre><pre class="cpp" name="code"><span style="font-size:14px;">#include<iostream> #include<vector> #include<iterator> #include<algorithm> #include<string> using namespace std;

XC文件管理器(Android应用)

XC文件管理器,是基于Android4.4开发的一个方便易用的文件管理器,具有文件的目录管理和文件的管理,主要包括文件的新建.删除.重命名.复制,移动剪切以及文件详情查看等文件和目录的功能,同时支持文件和目录的批量管理,应该功能较全,视图提供两种:网格视图以及列表视图,应用界面简洁美观,易用性强,是较好易用的一款Android文件管理应用. 下载地址:http://download.csdn.net/detail/jczmdeveloper/7364093 应用截图如下: XC文件管理器(And

小蔡应用系列作品(Android应用)

这个博客是本人的开发的一Android应用作品-小蔡应用作品系列.目前主要有小蔡一键锁屏,小蔡通讯录,小蔡软件管理器,小蔡图片浏览器等. 欢迎大家下载使用,如有需要源码的可以联系我. 小蔡通讯录:基于Android4.4开发的一个手机通讯录,具有手机拨号,添加联系人,查看联系人,管理编辑联系人,智能查找联系人,删除及批量删除,备份/还原数据,以及手机联系人导入等功能,界面简洁美观,欢迎下载使用. http://www.cnblogs.com/JczmDeveloper/p/3721458.htm