Java 有没有办法在Android上并行创建视图?

Java 有没有办法在Android上并行创建视图?,java,android,threadpoolexecutor,Java,Android,Threadpoolexecutor,我正在开发一个应用程序,在它执行的某个部分,用户将能够以图形的形式看到文本文件中的数据。但是,由于文本文件可以有多个列,并且它旨在为每个列创建一个图形,因此仅使用UI线程可以暂时阻止应用程序。所以我的问题是:Android上是否有任何类允许我并行创建这些图形视图,并在所有图形就绪后将它们添加到父布局中 为了简单起见,我的第一个想法是使用ExecutorService,如下所示,使用TextView而不是GraphView,类来自我在项目中使用的库: createTextsInParallel实现

我正在开发一个应用程序,在它执行的某个部分,用户将能够以图形的形式看到文本文件中的数据。但是,由于文本文件可以有多个列,并且它旨在为每个列创建一个图形,因此仅使用UI线程可以暂时阻止应用程序。所以我的问题是:Android上是否有任何类允许我并行创建这些图形视图,并在所有图形就绪后将它们添加到父布局中

为了简单起见,我的第一个想法是使用ExecutorService,如下所示,使用TextView而不是GraphView,类来自我在项目中使用的库:

createTextsInParallel实现: 公共无效createTextsInParallel{ ExecutorService executor=ExecutorService Executors.newFixedThreadPool3; List taskList=新建阵列列表; 对于int i=0;i
Caused by: java.lang.RuntimeException: Can't create handler inside thread Thread[pool-1-thread-1,5,main] that has not called Looper.prepare()

那么我应该在哪里打电话给Looper.prepare?根据前面的SO问题,每当我调用Looper.prepare时,我也应该调用Looper.loop和Looper.quit。但是由于我使用Executor服务来完成这项工作,我不确定应该在哪里给他们打电话。非常感谢您的帮助。

我无法运行您的代码,因为它包含一些错误并且无法立即编译,但我怀疑问题在于您在调用的辅助线程中实例化了视图。 我知道这正是您的目标,但这可能不是一个好主意,因为它取决于您正在实例化的视图的实现。例如,如果他们的构造函数创建一些处理程序,他们将要求准备活套。 您可以在call方法中尝试这样做,但仍然存在这样一个事实:此时,它们的处理程序可能正在意外的线程上运行

它似乎也是特定于平台的,因此它可能在某些手机上工作,而在其他手机上不工作,这取决于该特定视图的实际实现。我建议在这里看一下这篇文章,也许你可以尝试遵循其中的一些建议,例如使用AsyncLayoutInflater:

您好,感谢您花时间分析代码!我在互联网上搜索了很多,我发现大多数人建议不要在后台线程中夸大视图,所以我想我必须找到另一种方法。。。