如何异步加载资产中的大量文件?

时间:2016-03-09 01:50:58

标签: android android-asynctask android-assets

我知道它有类似的主题。但是在每个主题中,我们在运行任务之前以及新线程加载数据中打开InputStream。但我有90个资产文件。这是创建90 AsyncTask的单一方法吗?我可以通过inBackground()方法访问主线程以获取资产并打开新的InputStream吗?就我而言,如果我要创建90个任务,我还需要同步他们的启动和完成顺序。我需要一个同步点,我的AsyncTask将等待主线程。

1 个答案:

答案 0 :(得分:1)

我的建议是使用ThreadPool执行器创建一个服务并在那里加载,你可以让一堆并行运行的线程来读取。完成后,您可以回调您的活动,您可以使用广播或带有回调的活页夹界面。

另一种选择是使用setRetaininstance(true)创建一个片段,并使用AsyncTasks或线程池执行器进行处理。

但不要在具有异步任务的活动中执行此操作,如果用户旋转设备,您可能会运行90个任务,并且没有活动将结果返回到。