我有一个需要绑定的服务,因为调用者需要一些反馈和返回值。至少有一个 Activity、一个 Fragment 和一个 ContentProvider 应该使用绑定的 Service。所以所有使用对象调用bindService。并且都收到 onServiceConnected。到目前为止没问题,这行得通。
但是随后:Activity 想要所有的 Fragment 显示它们的内容,它们调用 ContentProvider。碰巧的是,Fragments 和 CP 还没有绑定。所以我不能确定,在 onServiceConnected 期间,所有其他使用服务的对象都已连接。
如何解决这个问题?我想到了一些想法:
有没有办法控制接收 onServiceConnected 回调的对象的顺序?
是否有一个活动生命周期回调,我可以确定所有 onServiceConnected 调用都已完成?那么,有没有更好的方法来开始填充 Fragments 的内容?或者,如果我在 Activity 的 onServiceConnected 中发布消息,我能否确定在所有其他 onServiceConnected 调用之后处理此消息?
另一个想法是我将绑定的服务连接保存在其他地方的静态单个字段中。因为 ContentProvider 需要访问,所以我想到了 Service 类本身。但不知何故,这似乎违背了绑定服务的想法?!?!
还有其他想法吗?
谢谢,约尔格