我有两个问题,我希望你可以在没有我的代码的情况下给我一个解决方案,因为它还不存在!
第一个问题: 我如何在2个线程之间进行通信,从thread1到thread2发送例如整数或字符串的最简单方法是什么?
第二个问题: 有什么方法可以通过结果接收器在活动和线程之间进行通信,当线程被服务标记时,是否由活动开始?
感谢您的建议!
答案 0 :(得分:0)
不幸的是,你的问题并不是对我们有用的帮助,(我们首先需要代码等)但我碰巧能够给出“广泛的”答案......
第一个问题:“最简单”的方式......完全是主观的......
首先,你在Android上有很多选择(甚至比普通的Java还要多)......
你可以使用标准的java并发东西......
你可以使用Android的HaMeR(处理程序,消息和Runnables)(从我的博士顾问Dr Schmidt命名,他有几个在线CS课程,你可以免费观看..(播放列表标题:{{1 }和CS 282 (2014): Concurrent Java Network Programming in Android
)
Android上的并发可以构成整个大学课程这一事实是一个强大的指标,指出该主题有多复杂......
取决于“确切”你希望线程如何通信......我个人建议在UI线程中创建一个自定义处理程序并给出对线程的引用(如果它们向UI线程报告结果)或者制作一个每个线程中的处理程序,让另一个线程引用它。 (从而为线程提供了来回异步通信的机制。)
detailed video explaining Handlers
“简单”在这里是主观的......
第二个问题:
您不会与服务背后的“线程”进行通信......您将启动该服务并与服务进行通信。然后,该服务将与其正在控制的线程进行通信。
我个人会推荐使用自定义回调来设置服务的单向异步AIDL(但这是一种相当先进的方法(我不再使用任何其他方式进行绑定服务,因为其他方法都非常低劣)在我看来))
然而,在你达到这一点之前,我建议你按照第一个问题的方法来制作允许你来回传递消息的处理程序,然后让服务在获得它们时将结果“报告”给活动(来自一个或多个主题)