Sou*_*nta 10 service android android-service android-activity
我正在尝试重构/重新设计Android应用.目前,我有一个UI活动(Activity 1)创建一个DataThread.该线程负责网络I/O,并通过a与UI活动交互(提供数据)handler.
现在,我想添加另一个活动(带有视频的新UI屏幕) - Activity 2.Activity 1仍然是主要的活动.Activity 2将在用户单击按钮时调用Activity 1.Activity 2的数据也来自于 DataThread.
我的想法是把我的逻辑DataThread放在Android Service(DataService)中.我的问题是 - 可以在活动上同时绑定我的活动DataService吗?有没有办法告诉服务只为特定活动提供数据?
欢迎任何其他想法?
提前致谢.
小智 6
绝对不止一个活动可以绑定到您的服务.你会得到一个绑定的onBind().然后,您的服务将理想地处理与多个活动交互的逻辑,方法是使用服务中的onBind()使用ID或意图(将每个活动的ID作为额外内容)识别它们.然后,您可以让服务从绑定到它的每个活动的后台线程中生成.
我通常从应用程序类绑定我的服务,并在应用程序中设置某种控制器类(我猜是“中介”……不确定所有这些模式是如何命名的),用于处理服务和任何活动活动之间的通信是。
这将涉及编写您自己的应用程序类并告诉清单使用该类。我在之前的帖子中更详细地介绍了这个过程:
您可以通过在 onResume 中向 Application 类发送对其自身的引用来跟踪“当前活动”的 Activity(也在上面的示例中进行了解释)。这可以通过从公共基类派生您的 Activity 来完成,该基类具有获取 Application 类的方法(从 getApplicationContext 进行转换),并在此基类的 onResume 中将其自身的引用发送到应用程序。然后,您可以按名称向 DataServiceController 注册活动,并且仅当当前活动已向控制器注册以接收消息时才将消息发送到当前活动。
| 归档时间: |
|
| 查看次数: |
17041 次 |
| 最近记录: |