ユーザーがアプリを開いてすぐにアクティビティAに行くシナリオを考えてみましょう。 OnCreate
メソッドは、バックグラウンドで実行されるサービスを作成します。バックグラウンドサービスからバックグラウンドで現在のアクティビティへのデータの送信
this.StartService(new Intent(this, typeof(MyService)));
このサービスは、独立して活動から実行されるので、ユーザは、閉じたりアプリを破壊した場合、サービスがまだ実行されています。 活動で
私は何かが私のバックグラウンドサービスで発生したときに、私は活動は、ブロードキャストを送信経由で更新し、RegisterReceiver
経由カップルのレシーバを登録。
私が直面している問題は、ユーザーがアクティビティAからアクティビティBになるときです。この時点で、サービスはアクティビティAで変更が必要なブロードキャストを送信していますが、フォアグラウンドではないため、受信者から更新されません。したがって、ユーザがアクティビティAからアクティビティBに戻ると、ユーザは古いデータを見ることになります。そして、サービスは不規則な間隔でこれらの更新を行います。
バックグラウンドでフォアグラウンドに移動したアクティビティを更新する適切な方法は何ですか?アクティビティのサービス参照またはデータを保持する適切な方法は何ですか?
バインドされたサービスを使用するかどうか分かっているので、アプリが強制終了されると破棄されます。私はそれを望んでいません。すべてのチュートリアルでは、フォアグラウンドにあるアクティビティを更新する方法のみを示しています。
私はちょうどアンドロイドを知るようになっています。だから、私はいくつかの明白な細部が欠けているかもしれません。
あなたの問題を解決するフォアグラウンドにいる場合にのみ、あなたの活動にブロードキャストを送信できます。 –
@Sandeepdhimanしかし、これらのアップデートをどうやって求めますか?サービスは不規則な間隔で最新のデータをブロードキャストで送信しています - 次回のアップデートは5分後になる可能性がありますので、次回のアップデートまでユーザーがデータを中継しないようにしてください –
https://stackoverflow.com/questions/2282435/放送活動からのインフォメーション・アクティビティ・イン・ザ・フォア・イン・ザ・フォアグランド –