美文网首页程序员
Android---线程间通讯

Android---线程间通讯

作者: 简书不简单iiii | 来源:发表于2019-03-13 21:16 被阅读0次

1. Handel:主线程中定义Handler,子线程发消息,通知Handler完成UI更新,Handler对象必须定义在主线程中,如果是多个类直接互相调用,就不是很方便,需要传递content对象或通过接口调用;但是这个方式要特别注意处理内存泄漏问题

2.runOnUiThread:runOnUiThread(new Runnable()){}  用Activity对象的runOnUiThread方法更新,在子线程中通过runOnUiThread()方法更新UI,使用方便

3.View.post(Runnable r)  比较建议的一种 特别是适用于view的更新

4.AsyncTask:主线程中实例化对象 异步线程处理

使用handle通信和使用view.post的区别是:view.post也是往主线程发消息,只是发消息要看view的状态,如果view已经被关联到window的话,直接通过handler发送,如果不是的话,则把消息添加到RunQueue.mActions中,到下次view绘制时再把mAction中的消息发到主线程消息队列,这里如果aAction中的runnable对象没有被及时发出去的话,回导致内存泄露,以为runnable常常作为匿名内部类,会持有对外部类的引用.从使用上看在有view引用变量的情况下,使用view.post方便,不需要自己去定义一个handler,定义handler一不小心就会引起内存泄露。

相关文章

  • Android---线程间通讯

    1. Handel:主线程中定义Handler,子线程发消息,通知Handler完成UI更新,Handler对象必...

  • 线程间通讯

    1.线程间通讯常用方法 2.线程间通讯的体现

  • 线程间通讯

    多个线程在处理同一资源,但是任务不一样 通过等待唤醒机制进行线程间通讯: 涉及的方法: 1.wati():让线程处...

  • 线程间通讯

    多个线程在处理同一资源,但是任务却不同。 举例: 等待/唤醒机制: 涉及的方法: 1. wait():让线程处于冻...

  • 线程间通讯

    线程间通信:数据从一个线程传递到另一个线程间例如使用GCD通信:![FQ]Y]J4X6F@JQ48XNM1PMT6...

  • 线程间通讯

    线程间通讯 线程间通信的体现:1个线程传递数据给另1个线程 ,在1个线程中执行完特定任务后,转到...

  • 线程间通讯

    主线程实现 定义属性 /// 根视图是滚动视图 @property(nonatomic,strong)UIScro...

  • Java架构师面试题全集:Java基础+技术框架+系统架构+分布

    基础题目 Java线程的状态 进程和线程的区别,进程间如何通讯,线程间如何通讯 HashMap的数据结构是什么?如...

  • Java架构师面试题全集:Java基础+技术框架+系统架构+分布

    基础题目 Java线程的状态 进程和线程的区别,进程间如何通讯,线程间如何通讯 HashMap的数据结构是什么?如...

  • JAVA架构师面试题and如何成为架构师

    基础题目 Java线程的状态 进程和线程的区别,进程间如何通讯,线程间如何通讯 HashMap的数据结构是什么?如...

网友评论

    本文标题:Android---线程间通讯

    本文链接:https://www.haomeiwen.com/subject/bxdxmqtx.html