【问题标题】:Can a service get a reference to the activity during onBind?服务可以在 onBind 期间获得对活动的引用吗?
【发布时间】:2019-07-21 19:59:13
【问题描述】:

我有一个服务,它基本上管理一个 MediaPlayer 实例来播放 podcasts。一旦活动绑定到服务,它就可以执行播放、暂停、停止等操作。我使用服务是因为我希望播客即使在活动被销毁后也能继续播放。

我希望该服务能够在出现错误或正常状态更新时将消息发送回活动。服务是否有可能获得对尝试绑定它的活动的引用?看起来意图不提供此功能。

【问题讨论】:

  • 我不确定,但您可能会搜索来自服务的广播消息或意图。您必须意识到一个活动可能在任何时间点被销毁,因此在服务中引用它可能不会起作用。然而,一个活动可以响应消息或意图。
  • 我没有想过它是否符合这些条件,但经过更多阅读后,似乎使用通知是从后台运行的组件进行通信的首选方式。因为正如你所说,活动可能不再存在。谢谢。

标签: android android-mediaplayer


【解决方案1】:

SDK 示例 API Demos 应用有一个向活动返回消息的服务示例

【讨论】:

  • 根据您的建议,我找到了 RemoteService 示例,它确实提供了此功能。在我的情况下,服务是本地的,所以我认为我不需要处理 IPC 的东西。我决定在服务绑定处理通信时将我的活动注册为侦听器。
猜你喜欢
  • 2015-07-10
  • 1970-01-01
  • 2018-05-20
  • 1970-01-01
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多