呼び出し元がフィードバックと戻り値を必要とするため、バインドする必要がある Service があります。バインドされたサービスを使用する必要がある少なくとも 1 つのアクティビティ、1 つのフラグメント、および 1 つの ContentProvider があります。したがって、すべての使用オブジェクトは bindService を呼び出します。そして、すべて onServiceConnected を受け取ります。これまでのところ問題ありません。これは機能します。
ただし、Activity はすべての Fragments にコンテンツを表示させたいため、ContentProvider を呼び出します。そして、フラグメントと CPがまだバインドされていないことが起こります。そのため、onServiceConnected の間、Service を使用する他のすべてのオブジェクトが接続されているかどうかはわかりません。
これを解決するには?いくつかのアイデアが頭に浮かびます:
onServiceConnected コールバックを受け取るオブジェクトのシーケンスを制御する方法はありますか?
すべての onServiceConnected 呼び出しが完了したことを確認できるアクティビティ ライフサイクル コールバックはありますか? では、フラグメントのコンテンツの入力を開始するためのより良い方法はありますか? または、Activity の onServiceConnected にメッセージを投稿した場合、このメッセージが他のすべての onServiceConnected 呼び出しの後に処理されることを確認できますか?
もう 1 つのアイデアは、バインドされたサービス接続を静的な単一フィールドに別の場所に保存することでした。ContentProvider にはアクセスが必要なので、Service クラスそのものを考えました。しかし、どういうわけか、これはバインドされたサービスのアイデアに反しているように見えます?!?!
他のアイデアはありますか?
ありがとう、ヨルグ