聊聊Android里的多线程
2016-07-11 22:18
260 查看
聊聊Android里的多线程
今天讲讲Android里的多线程,在java中多线程有两种实现方法,继承Thread类和实现Runnable接口(继承Thread本质上也是实现Runnable接口),线程里重写Run方法,通过start方法启动线程,两者的区别是实现了Runnable接口后需要将自己的Thread作为参数传入到实例化的Thread中。
在Android中除了可以使用java提供的Thread,还可以使用Android封装好的工具类,比如AsyncTask,IntentService,HandlerThread。AsyncTask底层实现是线程池,其他类底层使用了线程实现。
AsyncTask是一种轻量级的异步任务类,不适合执行特别耗时的操作。它是一个抽象的泛型类,提供了3个泛型参数,内有4个核心方法,onPreExecute,doInBackground,onProgressUpdate,onPostExecute,当任务取消时,调用onCancelled()。另需注意:AsyncTask必须在主线程中使用,execute不要重复调用,执行一次就好了,1.6之前AsyncTask是串行的,1.6-3.0是并行的,3.0之后又变成串行,如果又并行的需要呢,使用executeOnExecutor即可。
HandlerThread继承了Thread,顾名思义,Handler+Thread。在Thread的run方法中加入了Lopper.prepare()来创建消息队列,具体的使用通常配合IntentService来使用。
IntentServer继承自Server的抽象类,可用于执行后台耗时操作,优先级高于一般Thread(毕竟是四大组件)。
先写到这里,要去刷碗了,最近搬家了,开始自己做饭了,感觉还行,除了费时间要准备之外,菜饭的味道都能自己掌握,想多放肉就多方肉,咸淡也能自己掌握,感觉还不错。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories