Java Android异步问题?

Java Android异步问题?,java,android,android-studio,asynchronous,android-asynctask,Java,Android,Android Studio,Asynchronous,Android Asynctask,我有一个函数,它在对700个图像进行操作后返回一个列表。 该功能需要一些时间,因此应用程序冻结。如何克服这个问题? 我正在返回所有要显示的图像的列表,所以我现在被卡住了。 任何带有代码的建议都会很有帮助。那么您有想要管理的1x主UI和700x图像了吗 在UI线程中可以有一个名为“finishedImages”的public view变量,然后在每个700x返回数据线程中使用相同的方法: increments finishedImages if finishedImages == 700 th

我有一个函数,它在对700个图像进行操作后返回一个列表。 该功能需要一些时间,因此应用程序冻结。如何克服这个问题? 我正在返回所有要显示的图像的列表,所以我现在被卡住了。
任何带有代码的建议都会很有帮助。

那么您有想要管理的1x主UI700x图像了吗

在UI线程中可以有一个名为“
finishedImages
”的public view变量,然后在每个700x返回数据线程中使用相同的方法:

increments finishedImages
if finishedImages == 700

 then run 1x public method to do the update of the UI

。只有这样,它才会更新后台ASYCHTASK上的UI。

处理这些数据量的最佳选择是使用IntentService。这里有很好的教程
您可以在创建活动或按下按钮时触发意图服务。您必须在活动中注册
BroadcastReceiver
,任务完成后,UI将更新
onReceive
BroadcastReceiver

在Async的doInBackground()中运行代码

您还可以在服务中异步执行任务。它不会干扰你的应用程序。(如果任务太长)


您可以在onPostExecute()中获得结果

但是用户会一直等到所有线程都完成了操作,不是吗?我对android编程非常陌生,所以我不能再深入了。我想用处理更新UI。我不希望最终更新UI,我希望它并行更新。然后AsyncTask将在ProgressUpdate(ClassToStoreImageAddress…progress){updateImageView(progress[0]);}上得到适当的保护由于我需要显示此背景线程返回的所有图像,因此在背景线程工作之前,UI将显示什么?您可以看到任何甜美的卡通人物,他们会告诉用户我正在制作图像。:)我正在考虑使用进度条。你把你的图像、SD卡或可绘图文件夹放在哪里?你有什么样的列表?就像我把画廊里所有的图片都拿出来处理,然后我需要展示它们。我获取了图库中的所有图像,然后对它们进行操作,并返回这些图像的列表以显示最终图像。将所有图像加载到ram中会锁定内存(签出android monitor以查看)。如何实现分页设计以获取所有图像。假设获取所有图像路径并将它们作为50加载到内存中,在获取图像时使用bitmapcompressI加载它们,我的想法是相同的,但我无法编写代码,一些代码可能会有所帮助