2012-05-13 20 views
0

私はonLocationChanged()で取得したデータをtcp/ip経由で送信します。私は場所とネットワークの作品も読むことができます:私は接続し、データを送信することができます。 問題は次のとおりです。ネットワークをアクティビティスレッドに入れることはできませんが、onLocationChanged()を実行する必要があります。ここで私の質問です: どのようにネットワークスレッドに活動スレッドから位置情報を取得しますか?アクティビティからネットワーク経由で情報を送信する

ありがとうございます。

編集:データを繰り返し送信する必要があり、1秒ごとに再接続したくありません。

答えて

0

さて、私はネットワークスレッドで作成されたソケットにアクティビティスレッドから直接アクセスできるかのようです。 (少なくとも私はまだ間違った振る舞いをしていませんでした...)

最初はうまくいきませんでしたが、それはむしろ関係のないバグのためでした。

1
onLocationChanged() 
{ 
    new Thread(){ 
       public void run(){ 
         //POST YOUR DATA. 
       } 
    }.start(); 
} 
+0

データを繰り返し送信する必要があります。新しいデータを取得するたびに再接続する必要がありますか? – Lara

+0

あなたは一度接続するだけではありません。 –

+0

?データが取得されるたびにスレッドが新しく作成されると、毎回再接続する必要があります。 – Lara

1

あなたが潜在的に長時間実行操作でUIスレッドをタイアップすることができていないので、あなたは、別のスレッドを起動したり、ネットワーク操作を実行するためにAsyncTaskを使用する必要があります。

+0

はい私は知っています。しかし、AsyncTaskは、ネットワークスレッドをUIではなくネットワークスレッドに話すことを許可しますか、間違っていますか? – Lara

+0

正しいですが、UIスレッドは 'AsyncTask'を開始して必要な情報を渡すことができます。 –

+0

新しい情報があるたびに再接続する必要がありますか? (恐らく毎秒) – Lara

関連する問題