我可以通过并行执行多个异步任务来更快地运行它们吗?

时间:2018-06-30 18:50:42

标签: android android-asynctask rx-java

我正在尝试为我的应用创建自己的共享菜单。为此,我需要加载可能选择的每个应用程序的图标和名称。我借助异步任务加载此信息。

但是我查看了5个应用程序的全部情况:

Executing Task 1
Task 1 Starts
Executing Task 2
Executing Task 3
Executing Task 4
Task 1 Ends
Task 2 Starts
Executing task 5
Task 2 Ends
Task 3 Starts
Task 3 Ends
Task 4 Starts
Task 4 Ends
Task 5 Starts
Task 5 Ends

这是相关的异步任务代码:

@Override
protected Void doInBackground(ResolveInfo... params) {
    textToSet = String.valueOf(ttime) + params[0].loadLabel(context.getPackageManager());
    imageToSet = params[0].loadIcon(context.getPackageManager());
    return null;
}

asynctasks并不需要真正的结果,对吗?因此,应该有一种方法可以并行运行它们以更快地加载我的东西吗?还是loadIcon一次只能发生一次?

无论如何,如果有一种方法可以并行化它,那我该怎么办? RxJava有帮助吗?

1 个答案:

答案 0 :(得分:0)

根据您的要求,您的应用程序中需要异步过程。

请使用RX Java。它将排序您的问题。您需要反应式编程。

https://www.androidhive.info/RxJava/android-getting-started-with-reactive-programming/

我希望本文能帮助您进一步了解rx-java。