0

次のコードを使用して、一定時間後にリストを更新しています。

Myactivity {
    setTimer() {
        Runnable  r = new Runnable() {
            run() {
                if(!isListUpdated) {
                    update();//n/w operation
                } else {
                    show();//this is a UI operation
                    listupdated = false;
                }

                Handler.postDelayed(this,next); //repeat after next
            }

            new Thread(r).start();
        }
    } 
}

2〜3回の繰り返しの後、それはNetworkOnMainThreadException. このコードのどこが間違っているのか誰か教えてもらえますか?

4

5 に答える 5

2

Main Thread でネットワーク操作を行うべきではありません。別のスレッドを作成し、そこで nw 操作を行います。

AsyncTaskService または別のスレッドを使用できます。ネットワーク操作を行う場所。BroadcastReceiver、Handler、または AsyncTask を介して更新します。

ここでAsyncTaskについて読んでください

于 2012-07-09T06:58:19.270 に答える
2

この例外は通常、メイン スレッドでネットワーク操作を実行しようとしたときに発生します。AsyncTaskネットワーク操作には を使用します。

于 2012-07-09T06:59:11.050 に答える
0

ハニカムバージョンを使用していると思いますが、問題を解決するには AsyncTask を使用することをお勧めします。

于 2012-07-09T07:08:10.957 に答える