在Android(Java)上,我在概念上遇到了提供以下内容的最佳方法的麻烦。我有一个线程从接口轮询数据包,并在可用时将其读入。然后,我有一组线程应在每个数据包到达时对其进行操作(不同的线程具有不同的操作)。
我在想一个线程应该能够“订阅”主线程上的数据包数据,并在到达每个数据包时获得一个副本。我不介意(并且可能更喜欢)是否将数据复制到每个“订阅”线程。这样,我不必担心线程同步某种形式的共享数据清理。
这样做的最好方法是让主线程维护一个回调函数列表并在每个数据包上执行它们吗?但是,如果是这样,我如何确保功能在“从属”线程上执行?还有其他人可以想到的更好的方法吗?
最佳答案
一个好的解决方案可能是为您感兴趣的通信事件注册广播接收器,然后适当地设置初始数据包处理器的广播意图。请参阅http://justanapplication.wordpress.com,了解有关Intent的一系列详细文章(共8个,还有更多内容),以及开发指南中的以下两页。
http://developer.android.com/guide/topics/fundamentals.html
http://developer.android.com/guide/topics/intents/intents-filters.html