2011-10-26 3 views
7

私は過去の従業員からAndroidプロジェクトを引き継いでおり、Androidアプリケーションのプロファイリングに使用する簡単なツールがあるかどうか疑問に思っています。私は内部にProgressBarスピナーを持つLinearLayoutを持っています。そのスピナーが表示されている間、私は別のスレッドでネットワークコールを実行しています。私は、LinearLayout全体を表示するために翻訳アニメーションを使用し、ネットワークコールが他のスレッドで返ってきたらLinearLayoutを非表示にします。今これは素晴らしいですが、スピンナーの種類が表示されている間に回転を停止することがわかります。スクロールしようとしたときのように画面とやりとりするような感じです。スピンナーは回転し続けます。 ProgressBar標準のスピナーの場合、スピナーを回転させるためにスピナーにいくつかのコマンドを設定する必要がありますか?これに関する情報は素晴らしいでしょう。AndroidでUIスレッドがどこで停止しているかを簡単に検出できますか?

おかげ

答えて

10

StrictModeを使用して、UIスレッドで行われている高価な呼び出しを検出できます。

+0

これは完璧だったので、UIの中断が発生していた行番号を教えてくれました。 – Bobbake4

+0

私はこのために特別なユースケースを持っています:AsyncTaskを.executeと.getで使用している場合、これは動作しません。 StrictModeは問題を捕らえることはできません。 –

0

AsyncTaskであなたのネットワーク呼び出しを実装しようとしないのはなぜ? onPostExecuteメソッドの実装では、UI上で必要なことをすべて実行できます(つまり、progressBarなどを隠す)。

または、compatibility/support libraryを使用している場合、またはハニカム以降をターゲットに設定している場合は、代わりにLoaderを使用してください。

関連する問題