<Android Framework 之路>多线程
2016-04-26 23:02
417 查看
多线程编程
JAVA多线程方式1. 继承Thread线程,实现run方法
2. 实现Runnable接口
JAVA单继承性,当我们想将一个已经继承了其他类的子类放到Thread中时,单继承的局限就体现出来了
但是可以实现多个接口,所以第二种方法相对于第一种来说灵活许多
其次,通过
new Thread(Runnable runnable).start()
启动线程的方式,若变量在runnable中定义,多个线程可以共用,因为来自同一个对象
比较适合多个相同程序代码的线程去处理同一资源的情况
Android多线程方式
主要集中在UI线程和其他线程的交互问题上
1. Thread,Handler,Message
2. AsyncTask
3. Runnable
第一种方式,new Thread()然后通过Handler sendMessage,由Handler的handleMessage方法实现对应的处理,完成与UI进程的交互
private Handler mHandler = new Handler(){ public void handleMessage(Message msg) { /*do sth through msg */ } } public BadThread extends Thread { private final static String TAG = this.getClass().getName(); public void run() { /*coding*/ } }; new BadThread().start();
第二种方式,异步线程的方式,doInBackground()中执行任务,onPreExecute()准备工作,onPostExecute()任务结束后调用,onProgressUpdate与publishProgress配合使用,实现和UI线程的交互
AsyncTask mLoadingTask = new AsyncTask(){ protected Object doInBackground(Object[] objects) { } protected void onProgressUpdate(Object[] values) { } ...... } mLoadingTask.execute();
第三种方式,Runnable对象,通过Handler直接Post等方法启动线程,实现与UI线程的交互
private Runnable mRunnable = new Runnable(){ public void run() { /*do sth*/ } } mHandler.post(mRunnable);
相关文章推荐
- <Android Framework 之路>多线程
- Android Studio对比代码的方法
- 深入浅出 - Android系统移植与平台开发(八)- Android系统的本地服务
- Android带图片的Toast(自定义Toast)
- Android Studio快捷键
- android平台添加新语种
- android AsyncTask和Handler对比
- Android应用Loaders全面详解及源码浅析
- Android开发之50个常见实用技巧——添加悦目的动画效果
- Android Studio基础设置和常用操作
- android 主线程和子线程之间的消息传递
- 关于Android 添加系统级(java)服务和调用的编写实现说明
- android 主线程和子线程之间的消息传递
- 百度地图开发环境配置
- Android:AIDL使用详解
- 多款Android播放器源码集锦(附开发教程)
- 20145308刘昊阳 《Java程序设计》实验四 Android环境搭建 实验报告
- Handler-进度条实例
- Android项目部署时,发生AndroidRuntime:android.view.InflateException: Binary XML file line #168: Error inflating class错误
- 【Android】Android之intent