2011-11-09 6 views
0

私は(これServiceは私のメインActivityから起動される)ServiceダウンロードデータをWebサーバからの毎秒を持っています。私のアプリでは、他のActivity sが存在し、それらのそれぞれがServiceでダウンロードしたデータによると彼らのUIを更新する必要があります。AsyncTaskを通じて異なるアクティビティから1つのサービスを呼び出していますか?

私の考えは、私のActivityのそれぞれに、Serviceから毎秒小さなデータを取り出すAsyncTaskを与えることです。その後、AsyncTaskは更新するようにUIに指示します。

私はすべてのAsyncTaskてやっていた昨日までは、私はデータを取得し、いくつかのActivity秒にそれを与えていることStackOverflowの上で今朝読みはAsyncTask 1以上Service仕事です。

Serviceでデータを取得したときに私のActivityに通知する方法が見つからないため、この(あまりにも良いことではない)治療法を考え出しました。 私は放送受信機、リスナー、意図について読ん...しかし、私は私のActivityさんは定期的にこの1つのサービスに 『購読』することができます方法を見つけ出すことはできません。

ありがとうございました。

PS:それはそのような私の文章で私のキーワードの各コードサンプルにばかげている:)?

PS2:私のアプリのユースケースでは、Webサービスから温度、圧力などを取得し、別のアクティビティでこれらの数量をそれぞれ監視しています(同じアクティビティですべて監視することはできません)。

+0

あなたの最初の「PS」についてのコメント:そうですね、少し積極的なようです:) – eightx2

+0

私は将来の質問について心に留めておきます。 – mthpvg

答えて

1

データは、ハンドラースルーサービスからのアクティビティの上にリフレッシュすることができます。

  1. サービスでは、ハンドラーのゲッター&セッターを作成できます。
  2. サービスが現在表示されているアクティビティのハンドラを持つようにする、アクティビティの開始時にアクティビティのハンドラを設定します。
  3. 活動へのデータについて通知するために、このハンドラのインスタンスを使用します。

ハンドラはlinkに従ってください。だからここ

+0

Thanks Vineet Shukla。だから私はハンドラをタイマーで作成し、例えば1000msごとにgetterをサービスで呼び出すでしょうか?私はこの権利を得ていますか?もしそうなら、私が話していたAsyncTaskとの違いは何ですか? – mthpvg

+0

なぜカウントダウンタイマーを使用していますか?アクティビティに来たら、サービスにハンドラを設定して、サービスに現在の可視アクティビティのハンドラがあるようにします。 –

+0

申し訳ありませんが、ここでいくつかの知識が不足していると思います。私の場合、ハンドラは別のスレッドにあり、タイマーで何かを定期的にチェックする機能を提供します。 doInBackGroundのループを持つAsyncTaskと同じように。もちろん、タイマーやループなしで両方のケースで1回だけ使用できます。私は、定期的に、または値がWebサーバーから取得されるたびに値を取得するために、アクティビティのハンドラをServiceとリンクする方法を理解していません。 – mthpvg

0

は私が(Vineetシュクラのおかげで)欲しいものを達成する方法である:

活動では、 "ServiceConsumerActivity"、追加:サービスで

public static RefreshHandler mRefreshHandler; 

class RefreshHandler extends Handler 
{ 
    @Override 
    public void handleMessage(Message msg) 
    { 
     showServiceData(); //from which I call a method of the Service for getting the fetching value 
    } 
}; 

を、追加します。

Message mMessage = new Message(); 
ServiceConsumerActivity.mRefreshHandler.sendMessage(mMessage); 
+0

showServiceData関数も書き留めてください。ありがとう – Piscean

+0

申し訳ありませんが、それは古すぎます。それについての事を覚えていない。 – mthpvg

関連する問題