我试图重构/重新设计一个
Android应用程序.目前,我有一个创建DataThread的UI活动(活动1).该线程负责网络I / O,并通过处理程序与UI活动交互(提供数据).
现在,我想添加另一个活动(一个新的UI屏幕与视频) – 活动2.活动1仍然是主要的活动.当用户单击活动1上的按钮时,将调用活动2.活动2的数据也来自DataThread.
我的想法是将DataThread的逻辑放在Android Service(DataService)中.我的问题是 – 可以比活动在同一时间绑定到我的DataService吗?有没有办法告诉服务仅向具体活动提供数据?
欢迎任何其他想法
提前致谢.
解决方法
我通常将我的服务从应用程序类绑定,并且具有某种类型的控制器类(像“调解器”我猜…不知道如何命名所有这些模式)在应用程序中作用于处理服务之间的通信以及任何活动的活动是.
这将涉及编写自己的应用程序类,并告知清单使用这个.我在以前的主题中详细介绍了这个过程:
More efficient way of updating UI from Service than intents?
您可以通过将应用程序类引用到onResume(在上面的示例中也解释)来跟踪“当前活动的”活动.这可以通过从具有获取Application类(从getApplicationContext转换)的方法的公共基类派生您的活动,并在该基类’onResume中将自身的引用发送到应用程序.然后,您可以通过名称与DataServiceController注册活动,例如,只有在向Controller注册才能接收消息时才将消息发送到当前活动.