读书笔记--Android多线程
2015-08-13 13:09
459 查看
一、android service
android service 不会主动开启新线程,任务运行在主线程中,如果需要进行耗时操作,要手动在service中创建一个新的thread进行耗时任务。
二、异步任务
public abstract class AsyncTask<Params, Progress, Result>
三种泛型类型分别代表“启动耗时任务所需要的参数”、“后台任务执行的进度”、“后台计算结果的类型”。在特定场合下,并不是所有类型都被使用,如果没有被使用,可以用java.lang.Void类型代替。
AsyncTask抽象出后台线程运行的五个状态,分别是:1、准备运行,2、正在后台运行,3、进度更新,4、完成后台任务,5、取消任务,对于这五个阶段,AsyncTask提供了五个回调函数:
1、准备运行:onPreExecute(),该回调函数在任务被执行之后立即由UI线程调用。这个步骤通常用来建立任务,在用户接口(UI)上显示进度条。
2、正在后台运行:doInBackground(Params...),该回调函数由后台线程在onPreExecute()方法执行结束后立即调用。通常在这里执行耗时的后台计算。计算的结果必须由该函数返回,并被传递到onPostExecute()中。在该函数内也可以使用publishProgress(Progress...)来发布一个或多个进度单位(progress)。这些值将会在onProgressUpdate(Progress...)中被发布到UI线程。
3. 进度更新:onProgressUpdate(Progress...),该函数由UI线程在publishProgress(Progress...)方法调用完后被调用。一般用于动态地显示一个进度条。
4. 完成后台任务:onPostExecute(Result),当后台计算结束后调用。用于显示结果,取消对话框等操作在这一步完。后台计算的结果会被作为参数传递给这一函数。
5、取消任务:onCancelled (),在调用AsyncTask的cancel()方法时调用。
三、Runnable、Thread
ruannable 接口默认运行在主线程中。如View.post(Runnable);
处理耗时任务时应new Thread(Runnable).start
四、handler
android service 不会主动开启新线程,任务运行在主线程中,如果需要进行耗时操作,要手动在service中创建一个新的thread进行耗时任务。
二、异步任务
public abstract class AsyncTask<Params, Progress, Result>
三种泛型类型分别代表“启动耗时任务所需要的参数”、“后台任务执行的进度”、“后台计算结果的类型”。在特定场合下,并不是所有类型都被使用,如果没有被使用,可以用java.lang.Void类型代替。
AsyncTask抽象出后台线程运行的五个状态,分别是:1、准备运行,2、正在后台运行,3、进度更新,4、完成后台任务,5、取消任务,对于这五个阶段,AsyncTask提供了五个回调函数:
1、准备运行:onPreExecute(),该回调函数在任务被执行之后立即由UI线程调用。这个步骤通常用来建立任务,在用户接口(UI)上显示进度条。
2、正在后台运行:doInBackground(Params...),该回调函数由后台线程在onPreExecute()方法执行结束后立即调用。通常在这里执行耗时的后台计算。计算的结果必须由该函数返回,并被传递到onPostExecute()中。在该函数内也可以使用publishProgress(Progress...)来发布一个或多个进度单位(progress)。这些值将会在onProgressUpdate(Progress...)中被发布到UI线程。
3. 进度更新:onProgressUpdate(Progress...),该函数由UI线程在publishProgress(Progress...)方法调用完后被调用。一般用于动态地显示一个进度条。
4. 完成后台任务:onPostExecute(Result),当后台计算结束后调用。用于显示结果,取消对话框等操作在这一步完。后台计算的结果会被作为参数传递给这一函数。
5、取消任务:onCancelled (),在调用AsyncTask的cancel()方法时调用。
三、Runnable、Thread
ruannable 接口默认运行在主线程中。如View.post(Runnable);
处理耗时任务时应new Thread(Runnable).start
四、handler
相关文章推荐
- Android Studio 使用 Gradle 打包 Jar
- Android Studio 使用 Gradle 打包 Jar
- android ndk入门学习
- android Graphics(四):canvas变换与操作
- Android开发自学笔记(基于Android Studio1.3.1)—1.环境搭建(转)
- 【Android】Merge讲解与实例
- android Graphics(三):区域(Range)
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图 .
- android与C# WebService基于ksoap通信(Android篇)
- android Graphics(二):路径及文字
- android Graphics(一):概述及基本几何图形绘制
- 基于android 的GPS 移植——主要结构体及接口介绍
- Android studio 1.3.1配置AA框架
- Android事件总线框架Otto使用
- android 处理输入法可见性
- android color.xml
- android文件夹目录的读取权限
- 乐点 Android SDK 积分墙开发者文档
- android 应用自身检测版本并下载
- android 酷派 选择联系人报错