- 浏览: 127671 次
- 性别:
- 来自: 九江
文章分类
最新评论
-
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 715一个action就是一个字符串,什么名字都无所谓。 自 ... -
Android横竖屏切换总结
2012-05-21 15:09 992Android横竖屏要解决的问题应该就两个: 一.布局 ... -
判断手机是否已经连接上网络
2012-03-16 13:59 1136ConnectivityManager cwjManager ... -
从你的应用程序返回桌面
2012-02-29 13:31 1216public boolean onKeyDown(int ... -
隐藏输入法
2012-02-22 12:10 924private void hideIM(View edt ... -
Bad request for field slot 0,-1.错误
2012-02-07 18:19 2430SQLiteQueryBuilder queryBuil ... -
彻底关闭应用程序 要点
2011-11-01 15:02 877根据Activity的声明周期 我们知道And ... -
android 检查gps
2011-10-31 11:56 850//检查GPS模块是否开启 public void ... -
Android中的Intent详细讲解
2011-10-26 17:57 972在一个Android应用中, ... -
Android API:Activity.managedQuery()
2011-10-26 17:28 1067描述: 获取一个包含指定数据的 Cursor 对象,并 ... -
android 小部件 AndroidManifest.xml
2011-10-26 16:55 815<receiver android:name=" ... -
状态栏Notification通知
2011-10-26 11:35 933package com.pocketdigi.Notif ... -
通讯录操作示例
2011-10-21 16:05 1119package wjh.android.contact; ... -
android学习之wifimanager
2011-10-21 14:11 2007import java.util.List; i ... -
android 拍照后保存图片(2) onActivityResult
2011-10-21 13:32 3093protected void onActivityRes ... -
android 调用相机保存拍照后的图片
2011-10-21 11:31 1662Intent intent = new Inten ... -
Android有效解决加载大图片时内存溢出的问题
2011-10-20 22:17 1608尽量不要使用setImageBitmap或setImageRe ... -
Android 相机实例(一)
2011-10-20 17:53 5209在android中应用相机功能,一般有两种:一种是直接调 ... -
获得 android 通讯薄 中的内容
2011-10-20 16:21 892//得到ContentResolver对 ... -
android drawable bitmap
2011-10-18 17:40 1070android在处理一写图片资源的时候,会进行一些类型的转 ...
相关推荐
在Android平台上,实现联网功能是一项关键任务,这使得应用程序能够与互联网交互,接收和发送数据。Android提供了丰富的API和工具来支持网络编程,使其成为开发联网应用的理想选择。以下是对Android联网功能的详细...
车联网:惠州后装市场的车联网命题——惠州后装企业的车联网产业布局正在聚集.pdf
R语言大会-汽车联网 车联网大数据——数据实践驱动行业发展 共29页.pdf
打造未来车联网生活——沃尔沃SENSUS.pdf
车联网通过车辆通信技术实现车与车、车与路、车与人等信息交互,从而实现智能交通管理和车载信息服务。但随着功能的日益完善,如何让更多用户充分利用这些功能成为业界关注焦点。引入车联网社交功能,可以增强用户对...
家庭联网必备——智能无线路由器选购.pdf
这份"安卓Android源码——斗地主源码实现.zip"提供的压缩包包含了一个完整的斗地主游戏的源代码实现,其中主要的文件是"Android斗地主[牌桌实现源码].pdf"。这里我们将详细探讨这个项目中的核心知识点。 1. **...
车联网前程远大——2019年车联网产业发展报告.pdf
### Android开发从入门到精通6-使用Android实现联网 #### Android平台概述及联网特性 Android作为一款面向应用程序开发的丰富平台,不仅提供了出色的用户界面元素和数据管理功能,还为开发者构建连接到真实世界的...
全面布局车联网生态——本刊专访四维图新总裁程鹏.pdf
车联网大会——千亿资金聚焦“第四终端”.pdf
《安卓Android源码——联网分类菜谱项目》 在安卓应用开发中,Android源码的分析和学习是提升技能的关键步骤。本项目“联网分类菜谱”是一个典型的Android应用程序,它将展示如何通过网络获取数据并展示在用户界面...
例如,车联网可以帮助电动汽车优化充电时间,实现远程监控电池状态,甚至在特定的条件下进行无线充电。 车联网技术的应用前景广泛,包括但不限于智能交通管理系统、紧急救援服务、车辆安全监控、智能调度、交通预测...
用车载应用思维做标准车联网服务——本刊专访赛格导航导航事业部总经理洪军.pdf
赛格导航:服务、开放引领车联网潮流——本刊专访赛格导航导航事业部总经理洪军.pdf
此pdf是教学Android中联网的教程
数联网——大数据如何互联epub格式
【Android联网实现】 Android平台为开发者提供了丰富的网络功能,使其能轻松实现应用程序的联网功能。主要的联网方式包括使用WIFI和GPRS两种,适用于各种网络环境。Android平台的网络功能基于Linux内核,提供了多样...