1. ホーム
  2. android

[解決済み] Android: (サービスから)現在のフォアグラウンドのアクティビティを取得するにはどうすればよいですか?

2022-04-18 22:02:32

質問

サービスから現在実行中のアクティビティへの参照を取得するネイティブな方法はありますか?

バックグラウンドでサービスを動かしていて、(サービス内で)イベントが発生したときに、現在のActivityを更新したいです。それを行う簡単な方法はありますか(私が上で提案したようなもの)?

解決方法は?

<ブロッククオート

サービスから現在実行中のアクティビティへの参照を取得する、アンドロイドのネイティブな方法はありますか?

現在実行中のアクティビティを所有していない可能性があります。

<ブロッククオート

バックグラウンドでサービスを動かしていて、(サービス内で)イベントが発生したときに現在のActivityを更新したいのですが、どうすればいいですか?それを簡単に行う方法はありますか(上記で提案したような方法)?

  1. ブロードキャスト送信 Intent をアクティビティに追加します。 以下はサンプルプロジェクトです。 このパターンのデモ
  2. アクティビティに PendingIntent (例) createPendingResult() を呼び出すことです。
  3. アクティビティにコールバックまたはリスナーオブジェクトを登録させるには、次のようにします。 bindService() そして、サービスがそのコールバック/リスナー・オブジェクトのイベント・メソッドを呼び出すようにします。
  4. オーダーメイドのブロードキャストを送信する Intent をアクティビティに、優先度の低い BroadcastReceiver をバックアップとして使用します。 Notification アクティビティが画面上にない場合)--。 ブログ記事はこちら このパターンについて