2016-11-01 4 views
-1

私はSQLite上でI/Oをたくさん行い、計算量が多いAsyncTaskに複雑なコードを持っています。このコードは非常に長く、ここではコピーしませんでした。私のコードがコメントされるとき、AsyncTaskはうまく動作し、プログレスバーを正しく更新しますが、コードではコードの最後までプログレスバーがフリーズします。 誰も私に敬意を表し、私のようなプログラムを書くことができますか?ワーカースレッドとプログレスバーはうまくいきますか? 私のプロジェクトは終了しました。開発段階では問題はありませんでした。実際のデータを使ったフェーズテストでは、私はこの問題に直面しています。このフォーラムで議論されたAsyncTaskを読んだのは3日間でしたが、私の助けと私は何をすべきかわかりません。私も凍った。 ありがとうございます。AsyncTaskのComplexコードがフリーズprogressBar

答えて

0

問題は解決しました。 明らかに私のコードはCPU時間を多く使い、UIThreadが画面を更新するのに十分な時間を残さない。 したがって、ハンドラと10ms遅延のCountDownLatchを使用してスレッドを開始するために、SQLiteを別のスレッドに追加するコードの部分を設定しました。この遅れはアンドロイドがUIThreadをリフレッシュする時間を解放する必要があります。このようにして、publishProgressは作業を開始しました。今私はそれが良い解決策であるかと思います。