Android用のHTMLダウンローダをコーディングしたので、ProgressBarを使用することにしましたが、java.lang.IllegalStateException: The current thread must have a looper!
を投げました。私は、この例外は、メインスレッドで関数を呼び出す必要があるときにスローされることを知っていますが、内部で呼び出されましたrunOnUiThread()
以下のコードを見てください。runOnUiThreadのProgressBarルーパー例外
//Inside a worker thread's run()
progressbar.setInterminate(true); //No Exception here
//Connect and get InputStream.
progressbar.setMax(conn.getContentLength()); //No exception here, too
progressbar.setProgress(0); //No exception here.
runOnUiThread(new Runnable() {
@Override
public void run() {
progressbar.setInterminate(false); //Exception here!
}
});
私はsetInterminate(false)
以下setProgress()
を移動しようとしたが、それは何もしませんでした。
ありがとうございます。
あなたのワーカースレッドは何かをダウンロードするために1回だけ実行されると仮定しますか?そうですか? –
@Infernoあなたは正しいです。たぶん私はそれをアーカイブするために共有価値を使用すべきですか? – minary
そして、「進歩」とは何ですか?それはどこから来ていますか?あなたは2つの異なるプログレスバーオブジェクトを持っているようです: 'progressbar'と' progress'。詳細を記入し、スタックトレースを追加してください。 –