活动与服务之间通过全球数据结构进行沟通

时间:2014-11-27 13:14:46

标签: android

在一个应用程序中,我有一个Activity,一个Service(无论活动是否可见,都会做一些事情),还有一个 Model 类(在< em> MVC 感觉),它是一个单身人士。活动和服务扮演控制器的角色,视图在xml布局中定义(没有自定义,现有的类被重用)。两个控制器都使用相同的模型。该服务不是遥远的,也就是说,生活在同一个过程中。

有许多技术(例如hereherehere)建议用于ActivityService之间的通信,通用数据结构不属于他们(谷歌says这是可能的,但这部分甚至没有提到广播,信使,绑定和其他服务特定的东西)。好吧,我理解多线程的问题,但如果我自己关心来自多个线程的访问,为什么在地球上我需要其他方法?

(UPD:事实上,我检查过服务和活动甚至使用相同的线程:“main”,id = 1.)

问题: 使用通用数据结构进行活动和服务之间的沟通是否被认为是一种不好的风格?如果是,为什么?

到目前为止,我倾向于认为这种方法是有效的。

1 个答案:

答案 0 :(得分:0)

Singleton课为我做的工作。我在我的项目中使用SingletonActivity,从未遇到任何锁定或其他特定于线程的问题。

这种方法的简单性和透明度比“风格不好”更为重要。或者它并没有引入任何IPC开销,作为标准方法&#34;做。您的代码仍然像您所希望的那样干净,而不像Google那样&gt;)