Android 关于线程间实时传输数据方法的封装

请问 我的需求是 Android中一个耗时线程用于异步下载数据 然后将该数据实时显示在Activity中 我可以使用Handler或者BroadCast来进行传值 但是如果将该异步方法封装成aar包 供他人使用 Handler和braodcast无法使用 请问如果调用这个aar包的使用者该如何实时获得数据

0

1个回答

用监听,建议看看观察者设计模式

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
线程间通讯方法
1.全局变量,注意作好互拆。     2.PostThreadMessage(),第一个参数表明要发送目的线程ID,这需要调用   GetMessage()或PeekMessage()读取线程消息。     3.SendMessage()或PostMessage(),同样需要调用GetMessage(),PeekMessage()读取消息,不过目标线程要有窗口句柄。     4.Socket通讯。
线程间通讯的方法
<br />多线程通信的方法主要有以下三种: <br />1.全局变量<br /><br />进程中的线程间内存共享,这是比较常用的通信方式和交互方式。<br />注:定义全局变量时最好使用volatile来定义,以防编译器对此变量进行优化。<br /><br /><br /><br />2.Message消息机制(Windows常用)<br />常用的Message通信的接口主要有两个:PostMessage和PostThreadMessage,<br /><br />PostMessage为线程向主窗口
Android线程间的消息传递
一、UI线程往其他Theard传递消息 1、UI端传递方式: A、首先让handler ontain一个message B、然后sendToTarget 2、其他Thread接受UI线程传递内容: A、实现run方法 B、Looper初始化:Looper.prepare C、Handler对象初始化:实现handlerMessage方法 D、Looper loop循环等待 new MyTh...
android 线程间通讯
android 线程间通讯
android 线程间的消息通信
andriod提供了 Handler 和 Looper 来满足线程间的通信。例如一个子线程从网络上下载了一副图片,当它下载完成后会发送消息给主线程,这个消息是通过绑定在主线程的Handler来传递的。 在Android,这里的线程分为有消息循环的线程和没有消息循环的线程,有消息循环的线程一般都会有一个Looper,这个事android的新 概念。我们的主线程(UI线程)就是一个消息循环的线程
关于线程间消息
目前有3个线程,分别编号1,2,3,其中1,3号线程会给2号通过postthreadmessage发消息,2号线程通过GetMessage来处理消息rn其中有一条消息要处理5秒钟,但在这个期间如果1,3号线程给2号发消息,在2号处理完当前消息后,1,3号发的消息就没有了,是不是消息也是有生命周期的,一段时间不处理,windows就把他给丢掉了?
关于线程间IPC
mutex: 多线程经常会出现访问冲突的情况,解决的办法是引入互斥锁。获得锁的线程可以完成“读-修改-写”的操作,然后释放锁给其它线程,没有获得锁的线程只能等待而不能访问共享数据,这样“读-修改-写”三步操作组成一个原子操作,要么都执行,要么都不执行,不会执行到中间被打断,也不会在其它处理器上并行做这个操作。 Mutex用 pthread_mutex_t 类型的变量表示,可以通过下面的方式初始
android进程间与线程间数据交互解决方案
android进程间与线程间数据交互解决方案 一.同进程 同进程内Service与Activity交互, 使用Binder 同进程不同线程               ,使用Handler 二.进程间通信 多线程(客户端)访问的情况下 ,使用AIDL 不需要处理多线程(多客户端) ,使用Messager 具体例子网上很多,这里只给一个结论方便记忆。 参考文章: htt
java 线程间数据共享和android 线程间数据共享异同
(一)Java多线程编程访问共享对象和数据的方法 1、每个线程执行的代码相同,例如,卖票:多个窗口同时卖这100张票,这100张票需要多个线程共享。 2、每个线程执行的代码不同,例如:设计四个线程,其中两个线程每次对j增加1,另外两个线程每次对j减少1。 a、如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个对象中有共享数据。卖票就可以这样做,每个窗口都在做卖票任务,卖的票
线程间实现同步互斥的方法
NULL 博文链接:https://t240178168.iteye.com/blog/1749315
线程间同步的三种方法
线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。 一、互斥锁(mutex) 通过锁机制实现线程间的同步。 初始化锁。在Linux下,线程的互斥量数据类型是pthread_mutex_t。在使用前,要对它进行初始化。 静态分配:pthread_mutex_t mutex = PTHR
请问线程间通讯的方法?
一个主线程启动一个子线程rnrn这个子线程如何向主线程发送一个消息呢 ?rnrn我是用的控制台 没有窗口rn
Android线程间 massage 机制
Android线程间 massage 机制
Android Handler线程间的调度
NULL 博文链接:https://18767136122.iteye.com/blog/1988524
android 线程间同步问题
我现在有2个android线程,一个是view 线程,一个是工作线程,我现在想让 工程线程暂停,直到view线程的 onDraw方法被调用后再继续运行 如何做?如何等待信号 处理方法 在java2个线程中传递对象,让一个线程去通知另一个线程的方式如下,在工作线程中调用  stick.wait(); When the view thread finishes its onD
线程间的那点事----线程间发信号
class Program    {        //写线程将数据写入myData        static int myData = 100;        //读写次数        const int readWriteCount = 10;        //false:初始时没有信号        static AutoResetEvent autoResetEvent = new AutoResetEvent(true);        static void Main(string[] a
关于线程----线程间的数据共享
当多个线程的执行代码来自同一个类的run方法,既称他们共享相同的代码;当共享访问相同的对象时,既他们共享相同的数据。 演示代码 Java代码 import java.lang.*; public class Demo { public static void main(String[] args) { ...
关于线程间通讯的疑问
线程间要进行通讯--或者说一个线程要获得另一个线程的某些数据. 我知道的两种方法,一是全局变量, 二是通过发送自定义消息,在消息参数中包含数据信息.rnrn而在一个界面线程与一个工作线程的程序中,还经常将界面的窗口指针作为参数传给工作线程,这样就可以在工作线程中更新界面--或者说调用界面线程的一些函数. 但这样做是不是会有问题或潜在的问题? 最近写了个MFC程序在工作线程直接调用CMainFrame的函数,该函数在调用拆分窗口的GetPane函数出现错误,后来才发现是多线程的问题. 是不是直接通过传入的指针调用函数都是不安全的?
关于 synchronized 的线程间可见性问题
JMM关于synchronized的两条规定:rnrn1. 线程解锁前,必须把共享变量的最新值刷新到主内存中rn2. 线程加锁时,讲清空工作内存中共享变量的值,从而使用共享变量时需要从主内存中重新读取最新的值。rnrn这样,线程解锁前对共享变量的修改在下次加锁时对其他线程可见。rnrn最后一句: 线程解锁前对共享变量的修改在下次加锁时对其他线程可见。 是什么意思啊? 是说 线程解锁前会将变量的值更新到主内存,下一次其他线程读取该变量的时候强行要求从 主内存中读取,还是说 线程解锁前将 修改后的变量更新到主内存 同时强行将该变量的值更新到各线程的工作内存啊?
关于线程间的控件互操作
<br />当一个线程对另一个线程进行直接操作时,会提示“线程操作无效...”错误,原因是一个线程对另一个线程直接操作可能会出异常。<br />解决办法:<br />1、取消这个错误提示的办法,在form构造函数中添加CheckForIllegalCrossThreadCalls = false语句,则提示错误消失。但不提倡这种方法。<br />public Form1() { InitializeComponent(); //Check
关于线程间发消息的问题?
在单文档工程中通过AFXBEGINTRHEAD开启了两个线程。现在两个线程通过发送消息去调用主进程中DOC下的两个不同的函数。会不会长生冲突呢?
关于线程间互斥的问题。
在线程间创建一个mutex,使用WaitForSingleObject()排队,这里有一个问题,当临界区被别的线程使用时,怎么在排队的线程中反映出来?
【Android通讯】Android线程间通讯
Android程序中,线程分为主线程(UI thread)和工作线程(work thread)。我们要遵循单线程模型原则:安卓UI的操作线程不安全,安卓UI的操作必须在主线程进行。1、多线程任务开发可以通过以下几个方式实现:Handler、AsyncTask。详见:http://blog.csdn.net/qq_29266921/article/details/548932542、如果子线程的数据...
无线局域网实时传输数据的应用
在成品车间,生产好的产品扫描通过电脑与无线扫描枪进行扫描或者用批处理的采集器进行采集数据,这里有二个弊端:第一无线扫描枪的话,跟电脑分开,不知道数据有无采集到电脑的文档里面,也不能实时传输到ERP系统里面;第二用批处理的采集器可以知道是否已经采集到数据但不能实时传输到ERP系统,为了改进现状通过用UNITECH HT680 WIFI数据采集器代替了此功能。     一、硬件与软件 
socket.io实时传输数据
   socket.io的一个很好的作用就是它的实时传输,在聊天方面起到了很大的作用。下面我就和大家分享一下socket.io的使用方法。    首先你要有一个nodejs环境,然后用npm装一个express项目框架。在项目node项目里面用npm装一下socket.io: npm install --save socket.io; var http = require('http')....
wince网络实时传输数据
最近遇到一个问题:rn环境如下 rn wince下串口每秒发送15K数据,我的串口读写缓冲区设置4K,全局数据设置为20Krn 现在有两个解决办法 rn 请大家分析一下那个更好rn 1.wince socket同步发送数据 发送数据时锁住全局数据区,直到发完为止,解锁rn 忧虑:串口缓冲区里的数据是不是因为处理不及时(没有拷贝到全局数据区中)被覆盖rnrn 2.wince socket异步发送数据 但是底层的缓冲区不知道有没有20k这么大rnrn谢谢
Android 两个Activity实时传输数据并绘图
蓝牙传输数据,接收后处理,然后绘出该点 首先两个Activity A和B,A中接收到数据,B中处理数据并绘图 先创建event 接口 package com.usr.usrs; public interface Event { public void onSomthingHappend(String msg); } 再创建EventManager类 packag...
线程间实现同步互斥的方法(合集)
特别详细的整理出的几篇线程间同步互斥的文章,代码基本能用,文章很全面,值得一读.
线程间访问互斥信息的方法?
这是一道面试题,实在找不到这个问题应该在CSDN的哪个板块问了,只能借这里的人气了!!rnrn看到《操作系统》这本书上的进程同步里讲到:进程同步机制通过信号量机制和管程机制以及3种经典的进程同步问题(生产者/消费者、读者/写着、哲学家进餐)来解决进程同步问题。rn我想,线程间访问互斥信息应该也差不多吧。rn不知道在面试的时候对这个问题有没有更加好的回答方法。
线程间如何访问控件方法?
我有一个主窗口,上面有一个按钮,这个按钮要加载A窗口,而A窗口由于业务需要,放了大量的图片和第三方控件,导致加载时很慢,为避免用户以为窗体卡死,我开启了一个新线程,在这个线程里加载B窗口,用于显示一个动画,提示用户正在加载窗体A。现在的问题是,如何在加载完窗体A后,让B窗口关闭?我试过如下代码,但会提示“窗口不是该线程创建,不能访问”。网上搜了一下,都说的是用委托来安全访问线程控件,但看得不太明白,能根据我的代码给点提示么?多谢![code=csharp]rn VMS.frm.system.floading floading = new frm.system.floading();rn rn Task task = new Task(() =>rn rn floading.ShowDialog();rn );rnrn task.Start();rnrn frm.vmsMGT.fCheckIn fCheckIn = new frm.vmsMGT.fCheckIn();rn this.createTab(fCheckIn);rn floading.Close();[/code]
进/线程间同步 通讯的方法
linux进程通讯的方法:   管道/FIFO/共享内存/消息队列/信号/   以上几种方式的比较:     1.管道:速度慢,容量有限,只有父子进程能通讯。 常见的单向进程间通信机制,发送信息的为发送进程,接受信息的为接受进程。管道通信的中间介质为文件,这样的文件为管道文件    2.FIFO:任何进程间都能通讯,但速度慢     3.消息队列:容量受到系统限制,且要注意第一次读的
线程间的切换
方式1.利用Hanler,发送主线程消息 new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { } }); 方...
线程间共享全局变量
num=100 def work1(): global num for i in range(3): num+=1 print('-----work1,num is %s'%num) def work2(): global num for i in range(3): num+=1 print('-----work2...
线程间操作无效
错误:线程间操作无效: 1可以通过将 CheckForIllegalCrossThreadCalls 属性的值设置为 false 来禁用此异常。这会使控件以与在 Visual Studio 2003 下相同的方式运行。 例如: namespace comcontrol { public partial class Form1 : Form { public
线程间同步机制的总结
多线程共享同一个进程的地址空间 优点:线程间较容易实现通信,通过全局变量实现数据共享和交换, 缺点:多个线程同时访问共享资源容易出现资源竞争,所以要引入同步和互斥机制。线程间同步:无名信号量,互斥锁,事件,临界区;(后两个用的较少) 无名信号量:实现同步的机制步骤 (1)定义全局变量sem_t sem1,sem2; (2)在进程中
线程间异步调用BeginInvoke
异步委托BeginInvoke及InvokeRequired使用
线程间同步工具
线程间同步工具 当一个任务被分解成多个任务并行执行完成时,各个任务间难免有相互依赖关系,比如,任务A为界面创建并更新的工作,任务B为网络获取数据,当任务A执行时,B可以同时去获取数据,A进行页面刷新时,可能会依赖B获取到的数据进行界面显示,这时,A需要等待B的完成,才能进行后续工作。 基于类似场景的解决方案很多,本文编写的工具类,个人感觉使用上可能稍微便捷一些。当然有得必有失,同仁们取长补短吧
线程间的协作
Condition接口可以用于协调线程之间的交互 示例:创建并启动两个线程,一个用来向账户中存款,另一个从同一账户提款。当提款的数额大于账户的当前余额时,提款线程必须等待。不管什么时候,只要向账户新存入一笔资金,存储线程必须通知提款线程重新尝试。如果余额仍未达到提款的数额,提款线程必须继续等待新的存款。 创建锁上的条件: Lock lock = new ReentrantLoc
线程间同步机制----信号
线程拥有与信号相关的私有数据——线程信号掩码,这就决定了线程在信号操作时具有以下特性: (1)每个线程可以先别的线程发送信号。pthread_kill()函数用来完成这一操作。 (2)每个线程可以设置自己的信号阻塞集合。pthread_sigmask()函数用来完成这一操作,其类似于进程的sigprocmask()函数。 (3)每个线程可以设置针对某个信号的处理方式,但同一进程中对某信号的处
线程间资源共享(线程同步)
 public class A implements Runnable{ public static int a = 1; public void run(){  while(true){   synchronized(this){    if(a     System.out.println(Thread.currentThread().getName() + " : " +a);