0

カスタムビューを作成するAndroidアクティビティがありますが、これはコストのかかるプロセスです。ハンドラーを使用しようとしましたが、使用すると、表示される進行状況ダイアログが5秒に1回のように回転します。そこで、AsyncTaskを使おうとしました。これでprogressDialogが回転しますが、UIの読み込みが許可されていないため、クラッシュしますか?ANRを取得せずにこれを行うにはどうすればよいですか?

08-10 19:28:21.313: ERROR/AndroidRuntime(1428): Caused by: android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
4

1 に答える 1

1

カスタム ビューを作成する Android アクティビティがありますが、これはコストのかかるプロセスです。

Traceviewまたはその他のツールを使用して、パフォーマンスを向上させます。カスタム ビューは、作成するのに本質的にコストがかかりません。

そこで、AsyncTask を使用しようとしました。これで、progressDialog がスピンしますが、UI の読み込みが許可されていないため、クラッシュしますか?

通常、バックグラウンド スレッドで UI 関連の作業を行うことはできません。ある程度の注意を払えば、ウィジェットを作成できるかもしれませんが、ウィジェットを画面にアタッチすることは絶対にできません (つまり、コンテンツ ビューの子として参照することはできません)。

ANR を取得せずにこれを行うにはどうすればよいですか?

Traceview やその他のツールを使用して、時間が費やされている場所の根本に到達することで、パフォーマンスの問題を解決することに焦点を当てます。

于 2010-08-10T23:46:14.203 に答える