我有一些艰难的时间试图解决这个问题。我有一个Activity,但是UI太慢而无法呈现整个屏幕,因为它在主线程上运行。我有两个主要部分要渲染,并希望使用一个单独的线程来渲染这两个部分中的一个。我的问题是:
提前致谢。
答案 0 :(得分:0)
UI太慢而无法渲染整个屏幕,因为它在主线程上运行
使用Traceview和StrictMode
确定问题的确切位置。例如,由于您“使用多个图像渲染网格”,除非图像已经在内存中,否则应在后台线程上完成图像的加载。有无数的库,如Picasso和Universal Image Loader,提供此功能。
是否可以从单独的线程更新活动中的UI?
一般来说,没有。通常这不是问题 - 当尝试在主应用程序线程上加载模型数据(例如图像)时会出现问题。
是否可以使用C ++和其他线程完成的代码更新UI?
一般来说,不,如您所述,以View
为中心的UI。我假设OpenGL可以使用多个线程进行渲染,但OpenGL不是我的区域。