Android 中线程之间通信的多种方式AsyncTask、IntentService、HandlerThread,RxJava,runOnUiThread

Android 中线程之间通信的多种方式AsyncTask、IntentService、HandlerThread,RxJava,runOnUiThread

  • Asynctask a创建AsyncTask子类的实例对象(即 任务实例) b. 同一个AsyncTask实例对象只能执行1次,若执行第2次将会抛出异常 c. 执行任务中,系统会自动调用AsyncTask的一系列方法:onPreExecute() 、doInBackground()、onProgressUpdate() 、onPostExecute()
  • Handler 最简单的使用Handler完成子线程和主线程的通信(子线程发消息给主线程) 注:1.子线程异步通知主线程刷新UI 2.主线程通知子线程通信方式 handler 两种发送消息方式 handler.post(Runnabel)/handler.post(Runnable,1000)
  • Rxjava 是目前比较流行的异步操作,经常用户网络请求回调 原理主要是订阅关系,线程切换,它以数据流回调
  • runOnUiThread Runnable对像就能在ui程序中被调用。如果当前线程是UI线程,那么行动是立即执行,果当前线程不是UI线程,操作是发布到事件队列的UI线程
  • IntentService是继承于Service并处理异步请求的一个类,在IntentService内有一个工作线程来处理耗时操作, 启动IntentService的方式和启动传统Service一样,同时,当任务执行完后,IntentService会自动停止,而不需要我们去手动控制。 另外,可以启动IntentService多次,而每一个耗时操作会以工作队列的方式在IntentService的onHandleIntent回调方法中执行,并且, 每次只会执行一个工作线程,执行完第一个再执行第二个,以此类推

项目demo 地址:https://github.com/jianghuiz/Asynch.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值