2016-05-26 8 views
0

MainActivityとバインドされたインテントサービス(またはMainActivityが一時停止している間に引き続き実行されるその他のバックグラウンドサービス)で構成されるAndroidアプリがあるとします。ANDROID:一時停止したアクティビティの変数へのアクセス

MainActivity、MainAcitivity.variable1、およびMainActivity.variable2に属する変数がいくつかあるとします。

MainActivityが一時停止されている間、これらの変数をバックグラウンドサービスから更新するのは安全ですか?私はそれがエラーなしで動作することを知っていますが、それは "眠っている"クラス/スレッドと対話することが可能であることは私には奇妙に思えます。 Mainが一時停止している間に複数の更新を送信すると、Mainが再開されたときに処理されるバッファですべて終了しますか?または更新はすぐに起こりますか?

これらの質問に対する技術的な対象は何ですか?

ありがとうございます!

答えて

1

これに慣れてはいけません。単にあなたのServiceがあなたのActivityの変数を見ることができないからです。

非常に良い解決策は、ローカルストレージにServiceによって行われた変更をキャッシュし、それが実行されている場合Activityを更新するためにBroadcastRecieverを使用することです。それに加えて、Activityは、onResume()メソッドでストレージからデータを取得し、それに応じてUIを更新する必要があります。

関連する問題