ここでは、次のことが挙げられます。私は、X秒(現在60秒)ごとにWebサービスを呼び出す必要のあるAndroidアプリケーションを持っています。このアプリケーションには複数のタブがあり、これらのタブはすべてデータ自体と対話する必要があります。 1つはMapViewで、1つはListViewで、3つ目は無関係ですが、最終的にはいくつかのグローバルデータを取得する必要があります。問題は、バックグラウンドで実行されるスレッドを主なアクティビティに持たせ、結果を取得して、TabHost内の両方の子アクティビティに最新のデータで自分自身を更新するよう指示することです。また、ユーザーがタブをクリックしてonCreate/onResumeアクティビティが発生すると、メインアクティビティから最新のデータを取得して強制的に再描画を行いたいと思います。私は本当にここに迷っています。私はサービスといくつかのゲットー静的メソッドを試して、アクティビティのインスタンスをサービスに渡して、タイマーが起動するたびに特定の関数を呼び出してビューを更新するようにしましたが、減速はかなり悪く、コードはちょっと醜いです。助言がありますか?Android TabAppアプリケーションでのアクティビティ間通信を実現する最善の方法
私はtabhostアクティビティのタイマー駆動スレッドとして実装しました。次に、各子アクティビティにタイマー駆動スレッドを設定して、データを(同期した形で)取得し、マップ/リストを更新します。それははるかに高速ですが、まだ少しハックっぽい感じなので、のように私は親アクティビティにカスタム関数を呼んでいる、特に一部:
((MainActivity)getParent()).getNearbyMatches();
これは私が完全に興奮しないんだけど強い結合の要素を追加しますパフォーマンスの観点からは、それははるかに優れています。私はすでに与えられている答えに感謝し、コンテンツプロバイダーのフロントについて少し研究しますが、私はサービスモデルに戻ってほしくないと思います。
私もこれを行う方法を知って欲しい!+1 – cakeforcerberus