我知道它有类似的主题。但是在每个主题中,我们在运行任务之前以及新线程加载数据中打开InputStream
。但我有90个资产文件。这是创建90 AsyncTask
的单一方法吗?我可以通过inBackground()
方法访问主线程以获取资产并打开新的InputStream
吗?就我而言,如果我要创建90个任务,我还需要同步他们的启动和完成顺序。我需要一个同步点,我的AsyncTask
将等待主线程。
答案 0 :(得分:1)
我的建议是使用ThreadPool执行器创建一个服务并在那里加载,你可以让一堆并行运行的线程来读取。完成后,您可以回调您的活动,您可以使用广播或带有回调的活页夹界面。
另一种选择是使用setRetaininstance(true)创建一个片段,并使用AsyncTasks或线程池执行器进行处理。
但不要在具有异步任务的活动中执行此操作,如果用户旋转设备,您可能会运行90个任务,并且没有活动将结果返回到。