Android 异步加载学习
来源:互联网 发布:nba2kol乔丹隐藏数据 编辑:程序博客网 时间:2024/06/16 05:29
<span style="background-color: rgb(255, 255, 255); font-family: 'Comic Sans MS'; font-size: 18px;"></span><pre code_snippet_id="1625680" snippet_file_name="blog_20160327_1_5498404" name="code" class="java">安卓应用开发应遵循单线程模型(Single Thread Modle)的原则。因为Android的UI操作并不是线程安全的,所以涉及UI的操作必须在UI线程中完成。但是并非所有的操作都能在主线程中进行,可能会导致ANR(Application No Response).所以开发者要遵循两条法则:1.不能阻塞UI线程。2.确保只在UI线程访问UI工具包。于是,就有了开启子线程进行异步处理的技术。
<span style="background-color: rgb(255, 255, 255); font-family: 'Comic Sans MS'; font-size: 18px;">一:采用AsyncTask</span>
三个参数:
AsyncTask<Params,Progress,Result>,三个参数由用户自己设定类型,如String,或是自定义的封装类型
*Params 启动任务执行的输入参数,比如http请求的URL
*Progress 后台任务执行的百分比,进度条等
*Result 后台执行任务最终返回的结果
四个主要方法:
*doInBackground(Params...) 子类必须实现的方法。主要负责执行那些耗时的后台处理工作。可以调用PublishProgress方法来更新实时的任务进度。
*onPreExecute() 该方法将在执行实际的后台操作前被UI线程调用。如在界面显示 一个进度条,或者是控件的实例化。
*onPostExecute() 在doInBackground()方法执行完成后被调用,并把结果通过该方法传递给UI线程,并且在界面上显示给用户。
*onProgressUpdate() 在publishprogress方法被调用后,UI线程将调用这个方法在界面上展示任务的进展情况。如通过一个进度条进行展示。
最后,在UI线程中通过execute()方法创建AsyncTask的实例。
实例:图片的异步加载。
0 0
- Android 异步加载学习
- Android异步加载(慕课网学习笔记)
- android异步加载图片
- android 异步加载图片
- Android AsyncTask异步加载
- android异步加载图片
- android异步加载图片
- android 异步加载
- Android异步加载图像
- android 网络异步加载
- Android 异步加载图片
- Android 异步加载图片
- Android 异步加载解决方案
- Android图片异步加载
- Android图片异步加载
- Android图片异步加载
- Android异步加载图片
- android异步加载图片
- 多线程
- 数字图像处理-照片OCR
- ViewPager切换动画——PageTransformer
- c++第二次实验-1
- 第5周-项目1-三角形类锥形(3)
- Android 异步加载学习
- 5.伪静态(2) --- rewrite 机制
- C++作业2-两点距离
- 标准C++中的string类的用法总结
- Java接受输入参数
- 合并多个有序链表
- MFC-自绘控件(CRadio篇)
- 推荐 10 个超棒的 CSS3 代码生成工具
- POJ 3159