3

是否可以在“服务”中获取对象“FragmentManager”?是否可以从“服务”中的“活动”传递对象“片段管理器”。

PS:包括非官方支持的功能。

4

1 回答 1

9

是否可以在“服务”中获取对象“FragmentManager”?

不,对不起。

是否可以从“服务”中的“活动”传递对象“片段管理器”。

那将是一个非常糟糕的主意。

如果您希望您的服务更新您的 UI,请记住可能没有 UI。欢迎用户按他们的 BACK 或 HOME 按钮退出您的 UI,即使您的服务正在运行。

还要记住,它可能是不同的 UI。例如,当用户将设备从纵向旋转到横向时,您的活动(和片段,默认情况下)将被销毁并重新创建。或者,用户可以点击某些东西,将不同的活动带到前台,并且该活动有自己的片段和管理器。

因此,要让您的服务更新您的 UI,您需要使用支持这种解耦操作的通信路径,例如:

  • 发送广播
  • 使用发送广播LocalBroadcastManager
  • 通过 a 更新内容ContentProvider,活动使用CursorLoaderContentObserver收到有关数据更改的通知
  • 等等
于 2012-10-18T16:08:43.760 回答