【发布时间】:2015-11-27 08:18:33
【问题描述】:
我一直在阅读有关如何在 Activity 和 Service 之间共享数据的文章。我找到了一些答案here 和here。我正计划创建一个单例类,因为这似乎是共享状态的最低开销机制。
对于我的应用程序,我有一个服务正在获取和记录各种传感器数据,并使用最新状态填充数据结构,然后通知活动以使用此信息更新 UI(如果活动可见)。如果 Activity 不可见,则当它可见时,它会查询状态信息以更新 UI。
我没有看到任何提及是否需要同步。例如,UI线程是否有可能将数据拉出结构并被服务中断,然后将新数据放入其中,从而导致UI呈现不正确?此外,我想在各种数据上放置一个标志,以便前端知道哪些数据已更新:服务将设置一个布尔值,而活动将清除它。似乎这里可能会出现类似的问题。
我是否需要担心这一点,或者 Activity 中的 UI 线程和服务中的(例如)Listener 或 Receiver 线程是否不可能相互中断。如果可以,使用同步方法访问数据结构是否足够?
【问题讨论】:
标签: android multithreading synchronization