前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android 多线程的实现方法总结

Android 多线程的实现方法总结

作者头像
砸漏
发布2020-10-22 10:31:16
1.2K0
发布2020-10-22 10:31:16
举报
文章被收录于专栏:恩蓝脚本

Android 多线程的实例详解

Java多线程方式

1. 继承Thread线程,实现run方法

2. 实现Runnable接口

JAVA单继承性,当我们想将一个已经继承了其他类的子类放到Thread中时,单继承的局限就体现出来了

但是可以实现多个接口,所以第二种方法相对于第一种来说灵活许多

其次,通过

代码语言:javascript
复制
new Thread(Runnable runnable).start() 

启动线程的方式,若变量在runnable中定义,多个线程可以共用,因为来自同一个对象

比较适合多个相同程序代码的线程去处理同一资源的情况

Android多线程方式

主要集中在UI线程和其他线程的交互问题上

1. Thread,Handler,Message 2. AsyncTask 3. Runnable

第一种方式,new Thread()然后通过Handler sendMessage,由Handler的handleMessage方法实现对应的处理,完成与UI进程的交互

代码语言:javascript
复制
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线程的交互

代码语言:javascript
复制
AsyncTask mLoadingTask = new AsyncTask(){
  protected Object doInBackground(Object[] objects) {
  }
  protected void onProgressUpdate(Object[] values) {
  }
  ......
}

mLoadingTask.execute();

第三种方式,Runnable对象,通过Handler直接Post等方法启动线程,实现与UI线程的交互

代码语言:javascript
复制
private Runnable mRunnable = new Runnable(){
  public void run() { 
    /*do sth*/
  }
}

mHandler.post(mRunnable);

以上就是Android 多线程实现的三种方法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档