2011-07-09 13 views
0

私はこの問題を抱えています。Androidハニカムネットワーク操作

私は、ハニカムタブレット用のAndroidアプリに取り組んでいる、そしてそれは、インターネットに接続するいくつかのデータをダウンロードし、それが完了だ後、UIを更新する必要があります。しかし、私はこれを何回も連続して行う必要があります。今私の問題は、ネットワークコールが行われたときにUIを更新するHandlerを持つ新しいスレッドでRunnableを使用していることです。

私の大きな問題は、データがまだデバイスに実際にダウンロードされていることを確認できないことです。私が知っているのは、ネットワークコールが行われたということだけです。それだけです。何かがダウンロードされているかどうかはわかりません。

私の場合の大きな問題は、Honeycombでのネットワーク操作にメインスレッドを使用できないことにあります。私がメインスレッドを使用していた場合は、

私は本当にこの件に関するいくつかの助けが好きです。ありがとう。

UPDATE: 私は少し良くすべてを説明しようとするでしょう:

私は別のスレッドでのネットワーク呼び出しを行うクラスを作成し、このクラスでも返すいくつかのメソッドが含まれていますそれらのネットワークコールからのさまざまなデータ。ただし、ネットワークの通話時間はユーザーのネットワーク速度によって異なります。つまり、getTitle()などのメソッドの1つを呼び出すと、ネットワークコールがまだ終了していないことがわかります。

私はこの線に沿って何かを実行する必要があります。 「 - (この生き物新しいスレッドでダウンロード)クラスの新しいインスタンスを作成します - 私はデータを使用することができますので、ダウンロードが完了していることを確認しますそれ から - プログレスバー」私は何をする必要があるか、基本的だ

を更新します。それが助けてくれたらと思います。おかげ

答えて

1

は、私が知っているすべては、ネットワーク呼び出しが行われていることであり、それはそれです。何かがダウンロードされているかどうかはわかりません。

これは本当に私には意味がありません。あなたはネットワーク通話をしています、あなたは応答を得ていますか?あなたはデータを保存していますか?

あなたは本当にあなたがこれらのネットワークのコールが起こっている間に、ユーザが完全に麻痺したくない、ネットワーク接続のためのメインスレッドを使用することになっていませんか?

あなたが例えばAsyncTaskを使用する場合は、onPostExecute(Object object)はあなたの呼び出しが行われたときに呼び出されると、あなたは、私が最初に少し良くそれを説明しようとした

+0

...ことを使用して、これらのネットワーク呼び出しをデイジーチェーン接続することができます役職。ありがとう! –

+0

ありがとう!私はまだAsyncTaskを使うべきだと思っています。もしそうなら、それはあなたが必要とするものは何ですか? –

+0

さて、クラスの新しいインスタンスを作成すると、新しいスレッドでダウンロードが開始されます。私の問題は、Runnableからデータを返すことができないことです。 私が本当に気に入っているのは、クラスの新しいインスタンスを作成してデータを返すことができる方法ですが、新しいスレッドでRunnableを使って実行すると不可能に思えます。私はおそらくRunnableの代わりにクラスでAsyncTaskを使用できますか? –