2011-08-02 5 views
0

私はGPSアプリケーションを開発する。私のアプリは、その後、私の活動に私はすべてのこれらの変数を受信する放送受信機を作成してサーバーを介してサーバにGPSを送信する責任がサービスをしている....android asynTaskアクティビティに問題がありますか?

Service -----> AysncTask(sendServer) 
// then in service i broadcast some variable 

myFilteredResponse = new Intent(GPS_FILTER); 
     myFilteredResponse.putExtra("latitude",  Double.valueOf(twoFormat.format(location.getLatitude()))); 
     myFilteredResponse.putExtra("longitude", Double.valueOf(twoFormat.format(location.getLongitude()))); 
     myFilteredResponse.putExtra("network", MyGPS.cur_network_status); 

nはそれは私のUIが続いたときに変更され、正常に動作します私たちは新しいlat n lonを持っています

私のAysncTaskでサーバーに送信すると、私は自分のUIインターフェースを更新したいので、私はUIを更新したいので、私はUIを更新したいと思っています。

構造

        broadcast 
service (on location changed) -------------> UI interface 

      broadcast?? 
AsyncTask -------------> UI interface 

私のAsyncTaskは活動がどんな考えではありませんので、私は私のAsyncTaskでsendBroadcastを使用することはできませんか?

答えて

1

私はあなたが問題は、サービスからデータを取得することだと思います。

サービスをUIにバインドして、アクティビティ内からサービスを呼び出すことができます。

ここはオープンソースプロジェクトです。 Link

これはサービスコードです。 Link

これはUIです。 Link

EDIT: あなたがAsyncTaskを使ってUIの更新をしたいならば、あなたはUIスレッドで実行さonPostExecuteを使用することができます。

編集: ここに行きます。 AsyncTaskの例。 Link

+0

Thxですが、UIの静的メンバーがサービスからブロードキャストされた情報をキャッチできないようにブロードキャストを使用しています。問題はasyncTaskクラスにあります。サーバーからの応答を受け取った後、UI、 – sayvortana

+0

は、あなたが私のasyncTask 保護無効onPostExecute(文字列の結果)にasyncTask – Samuel

+0

にonPostExecuteからUIを更新している{ \t \t Log.d(タグ、+結果を "ポスト実行"); \t \t //こちらを実行してください \t \t //MyGPS.location_info = "UnKnown"; \t \t // // UIの応答をブロードキャストしたいですか? \t} 私はUIのメンバーをレスポンスと同等にしているので、ブロードキャストできれば私のUIは更新できると思う。 – sayvortana

関連する問題