0

我有一个创建自定义视图的 Android 活动,这是一个昂贵的过程。我尝试使用处理程序,但是当我这样做时,显示的进度对话框每 5 秒旋转一次。所以我尝试使用 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 回答