【问题标题】:How to load complex views concurrently如何同时加载复杂视图
【发布时间】:2010-08-10 23:35:11
【问题描述】:

我有一个创建自定义视图的 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.

【问题讨论】:

    标签: android multithreading concurrency handler android-asynctask


    【解决方案1】:

    我有一个创建自定义视图的 Android 活动,这是一个昂贵的过程。

    使用Traceview 或其他工具来提高您的性能。创建自定义视图本质上并不昂贵。

    所以我尝试使用 AsyncTask。现在 progressDialog 旋转,但随后它 崩溃,因为它不允许 加载界面?

    您通常不能在后台线程中执行与 UI 相关的工作。稍加注意,您也许可以构建小部件,但您绝对不能将它们附加到屏幕上(即,它们不能作为您的内容视图的子级引用)。

    如何在不发生 ANR 的情况下执行此操作?

    我会专注于解决您的性能问题,使用 Traceview 或其他工具来了解您的时间花费的根源。

    【讨论】:

    • quickupload.net/tqfq8ir8nv6g/… 我不知道怎么读这个!为什么我不能垂直扩展彩色部分?另外,我不知道什么是重要的,要寻找什么或找到后该怎么做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多