「サービス」でオブジェクト「FragmentManager」を取得することは可能ですか?「サービス」の「アクティビティ」からオブジェクト「FragmentManager」を渡すことは可能ですか?
PS:公式にサポートされていない機能が含まれています。
「サービス」でオブジェクト「FragmentManager」を取得することはできますか?
いいえ、申し訳ありません。
「サービス」の「アクティビティ」からオブジェクト「FragmentManager」を渡すことは可能ですか。
それは非常に悪い考えです。
サービスで UI を更新したい場合は、UI がない可能性があることに注意してください。サービスの実行中であっても、ユーザーは [戻る] ボタンまたは [ホーム] ボタンを押して UI を終了できます。
また、異なる UIである可能性があることにも注意してください。たとえば、ユーザーがデバイスを縦向きから横向きに回転すると、アクティビティ (およびデフォルトではフラグメント) が破棄され、再作成されます。または、別のアクティビティを前面に表示する何かをユーザーがタップすると、そのアクティビティには独自のフラグメントとマネージャーが含まれます。
したがって、サービスで UI を更新するには、次のような分離された操作をサポートする通信パスを使用する必要があります。
LocalBroadcastManager
ContentProvider
、アクティビティを使用して、CursorLoader
またはContentObserver
データの変更について通知を受ける