CQM*_*CQM 6 android views ui-thread background-thread
我需要在循环中添加大量视图,而这个片段就是这样,应用程序还将有一个导航抽屉和操作栏,用户可以在其中执行操作.
所以我希望这个过程不会a)通过阻止用户来减慢app的速度,b)最好在后台线程中添加视图.
困境是我认为android不喜欢在非UI线程中添加视图,所以有最佳实践吗?我计划在片段视图中显示进度条视图对象,而其余视图是使用addView和相关计算生成的
Rom*_*Guy 18
您可以通过Runnables在UI线程上发布几个来分配工作,而不是在后台线程上添加视图.下面的代码是该技术的高度简化版本,但它类似于在Android的Launcher应用程序中完成的操作:
private void createAndAddViews(int count) {
for (int i = 0; i < count; i++) {
// create new views and add them
}
}
Runnable r = new Runnable() {
public void run() {
createAndAddViews(4); // add 4 views
if (mMoreViewsToAdd) mTopLevelView.post(this);
}
};
mTopLevelView.post(r);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4496 次 |
| 最近记录: |