Android 多线程的实现方法总结

 更新时间:2017年08月20日 10:58:56   投稿:lqh  
这篇文章主要介绍了Android 多线程的实现方法总结的相关资料,这里提供三种方法,帮助大家掌握这部分内容,需要的朋友可以参考下

Android 多线程的实例详解

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 多线程实现的三种方法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Android闹铃服务AlarmManager用法深入分析

    Android闹铃服务AlarmManager用法深入分析

    这篇文章主要介绍了Android闹铃服务AlarmManager用法,结合实例形式深入分析了闹铃服务AlarmManager的功能、原理、定义与使用方法,需要的朋友可以参考下
    2016-08-08
  • Android网络请求框架Retrofit详解

    Android网络请求框架Retrofit详解

    这篇文章主要为大家详细介绍了Android网络请求框架Retrofit,使用Retrofit2.0.0版本进行实例演示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Flutter上线项目实战记录之路由篇

    Flutter上线项目实战记录之路由篇

    这篇文章主要给大家介绍了关于Flutter上线项目实战记录之路由篇的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Flutter具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Android事件分发的事件由来原理分析

    Android事件分发的事件由来原理分析

    这篇文章主要为大家介绍了Android事件分发的事件由来原理分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Android 中ContentProvider的实例详解

    Android 中ContentProvider的实例详解

    这篇文章主要介绍了Android 中ContentProvider的实例详解的相关资料,希望通过本文大家能掌握这部分内容,需要的朋友可以参考下
    2017-09-09
  • Android自定义View实现圆环交替效果

    Android自定义View实现圆环交替效果

    这篇文章给大家介绍如何基于Android自定义View实现圆环交替的效果,实现后效果很赞,有需要的小伙伴们可以参考借鉴。
    2016-08-08
  • Android仿淘宝view滑动至屏幕顶部会一直停留在顶部的位置

    Android仿淘宝view滑动至屏幕顶部会一直停留在顶部的位置

    这篇文章主要介绍了Android仿淘宝view滑动至屏幕顶部会一直停留在顶部的位置的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • Flutter路由的跳转、动画和传参详解(最简单)

    Flutter路由的跳转、动画和传参详解(最简单)

    这篇文章主要给大家介绍了关于Flutter路由的跳转、动画和传参的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • 一款超酷的Android自定义加载控件

    一款超酷的Android自定义加载控件

    这篇文章主要为大家详细介绍了一款超酷的Android自定义加载控件,具有一定的实用性和参考价值,感兴趣的朋友可以参考一下
    2016-05-05
  • Android Gradle同步优化详解

    Android Gradle同步优化详解

    这篇文章主要为大家介绍了Android Gradle同步优化示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06

最新评论