- 浏览: 125372 次
- 性别:
- 来自: 九江
文章分类
最新评论
-
chenbo58:
mark一下
SQLite 函数大全 -
hm910705:
我觉得你的那个julianday是不是写错了,是将u写成了o, ...
SQLite 函数大全 -
jiguansheng:
费思量 写道你好,我按照第一种方式,为何进不了系统相机,摄像头 ...
Android 相机实例(一) -
费思量:
你好,我按照第一种方式,为何进不了系统相机,摄像头根本不开起, ...
Android 相机实例(一) -
xblia:
RelativeLayout 用了一会
在前面的关于Java I/O的学习中,有一个我们需要牢记的是:对数据流的操作都是阻塞的,在一般情况下,我们是不需要考虑这个问题的,但是在Android 实现联网的时候,我们必须考虑到这个问题。比如:从网络上下载一张图片: 如何将下载的信息显示在界面上了,比如说下载的进度。Android SDK平台只允许在主线程中调用相关View的方法来更新界面。如果返回结果在新线程中获得,那么必须借助Handler来更新界面。为此,在界面 Activity中创建一个Handler对象,并在handleMessage()中更新UI。 看上去修改后的connect()方法已经可用了,但是这种匿名程的方式是存在缺陷的: 为了解决这一问题,Android在1.5版本引入了AsyncTask。AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程 中执行,这就有效地避免了使用Handler带来的麻烦。阅读AsyncTask的源码可知,AsyncTask是使用 java.util.concurrent 框架来管理线程以及任务的执行的,concurrent框架是一个非常成熟,高效的框架,经过了严格的测试。这说明AsyncTask的设计很好的解决了 匿名线程存在的问题。 子类必须实现抽象方法doInBackground(Params… p) ,在此方法中实现任务的执行工作,比如连接网络获取数据等。通常还应该实现onPostExecute(Result r)方法,因为应用程序关心的结果在此方法中返回。需要注意的是AsyncTask一定要在主线程中创建实例。 举个简单的例子如下:
由于网络连接需要很长的时间,需要3-5秒,甚至更长的时间才能返回页面的内容。如果此连接动作直接在主线程,也就是UI线程中处理,会发生什么情况呢? 整个程序处于等待状态,界面似乎是“死”掉了。为了解决这个问题,必须把这个任务放置到单独线程中运行,避免阻塞UI线程,这样就不会对主线程有任何影 响。举个例子如下:
使用Handler更新界面
只需要将上面的
替换为:
AsyncTask
AsyncTask是抽象类,其结构图如下图所示:
AsyncTask定义了三种泛型类型 Params,Progress和Result。
AsyncTask的执行分为四个步骤,每一步都对应一个回调方法,需要注意的是这些方法不应该由应用程序调用,开发者需要做的就是实现这些方法。在任务 的执行过程中,这些方法被自动调用,运行过程,如下图所示:
发表评论
-
自定义Action
2012-05-28 14:19 683一个action就是一个字符串,什么名字都无所谓。 自 ... -
Android横竖屏切换总结
2012-05-21 15:09 957Android横竖屏要解决的问题应该就两个: 一.布局 ... -
判断手机是否已经连接上网络
2012-03-16 13:59 1084ConnectivityManager cwjManager ... -
从你的应用程序返回桌面
2012-02-29 13:31 1181public boolean onKeyDown(int ... -
隐藏输入法
2012-02-22 12:10 880private void hideIM(View edt ... -
Bad request for field slot 0,-1.错误
2012-02-07 18:19 2399SQLiteQueryBuilder queryBuil ... -
彻底关闭应用程序 要点
2011-11-01 15:02 851根据Activity的声明周期 我们知道And ... -
android 检查gps
2011-10-31 11:56 816//检查GPS模块是否开启 public void ... -
Android中的Intent详细讲解
2011-10-26 17:57 927在一个Android应用中, ... -
Android API:Activity.managedQuery()
2011-10-26 17:28 1042描述: 获取一个包含指定数据的 Cursor 对象,并 ... -
android 小部件 AndroidManifest.xml
2011-10-26 16:55 789<receiver android:name=" ... -
状态栏Notification通知
2011-10-26 11:35 904package com.pocketdigi.Notif ... -
通讯录操作示例
2011-10-21 16:05 1079package wjh.android.contact; ... -
android学习之wifimanager
2011-10-21 14:11 1985import java.util.List; i ... -
android 拍照后保存图片(2) onActivityResult
2011-10-21 13:32 3056protected void onActivityRes ... -
android 调用相机保存拍照后的图片
2011-10-21 11:31 1627Intent intent = new Inten ... -
Android有效解决加载大图片时内存溢出的问题
2011-10-20 22:17 1565尽量不要使用setImageBitmap或setImageRe ... -
Android 相机实例(一)
2011-10-20 17:53 5167在android中应用相机功能,一般有两种:一种是直接调 ... -
获得 android 通讯薄 中的内容
2011-10-20 16:21 872//得到ContentResolver对 ... -
android drawable bitmap
2011-10-18 17:40 1039android在处理一写图片资源的时候,会进行一些类型的转 ...
相关推荐
使用Android实现联网 使用Android实现联网
车联网社交——车联网发展的新起点.pdf
学习使用AndroidStudio开发App
车联网:惠州后装市场的车联网命题——惠州后装企业的车联网产业布局正在聚集.pdf
“车联网”——未来城市个人交通的美好愿景.pdf
打造未来车联网生活——沃尔沃SENSUS.pdf
家庭联网必备——智能无线路由器选购.pdf
车联网前程远大——2019年车联网产业发展报告.pdf
全面布局车联网生态——本刊专访四维图新总裁程鹏.pdf
车联网大会——千亿资金聚焦“第四终端”.pdf
安卓Android源码——联网分类菜谱项目.zip
汽车行业:车联网研究——智能化凸显,产业迎来爆发期
汽车行业:车联网研究——智能化凸显,产业迎来爆发期.pdf
热点追踪——车联网——车联网新技术与应用.pdf
Android开发从入门到精通6-使用Android实现联网.doc
用车载应用思维做标准车联网服务——本刊专访赛格导航导航事业部总经理洪军.pdf
赛格导航:服务、开放引领车联网潮流——本刊专访赛格导航导航事业部总经理洪军.pdf
此pdf是教学Android中联网的教程
数联网——大数据如何互联epub格式
针对各种用途车辆要求和发展趋势制定车联网策略——访华晨汽车集团控股有限公司华晨汽车工程研究院电气部部长詹德凯先生.pdf