0

我有一個Android活動可以創建自定義視圖,而且這是一個昂貴的過程。我試圖使用Handler,但是當我這樣做時,顯示的進度對話框每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. 

回答

1

我有一個創建自定義視圖一個Android活動,這是一個昂貴的過程。

使用Traceview或其他工具來改善您的表現。自定義視圖的創建本身並不昂貴。

所以我嘗試使用一個AsyncTask。現在 這個progressDialog旋轉了,但是那麼它的 崩潰了,因爲它不允許在 加載UI?

您通常不能在後臺線程中執行與UI相關的工作。小心一點,你可能能夠構建小部件,但是你絕對不能將它們附加到屏幕上(即,不能將它們作爲你的內容視圖的子項引用)。

我怎樣才能做到這一點,而沒有得到ANR?

我會專注於解決您的性能問題,使用Traceview或其他工具來獲取您的時間花在哪裏的根。

+0

http://quickupload.net/tqfq8ir8nv6g/add_providers-quickupload.net.trace.html我不知道如何閱讀本文!爲什麼我不能垂直延伸豐富多彩的部分?另外,我不知道什麼是重要的,當我找到它時尋找什麼或做什麼。 – 2010-08-11 01:04:03