У меня есть несколько простых задач для запуска в фоновом режиме, которые обновляют глобальные List<App>
приложений. Теперь, когда AsyncTask устарела, я использую простое executor
для выполнения задачи и handler
из основного потока, где я обновляю gridAdapter
в своем основном потоке.
private final Executor executor = Executors.newCachedThreadPool();
private final Handler handler = new Handler(Looper.getMainLooper());
private List<App> loadAllApps() {
final List<App> apps = new ArrayList<>();
executor.execute(new Runnable() {
public void run() {
// My code to get items into the list.
handler.post(new Runnable() {
public void run() {
gridAdapter.notifyDataSetChanged();
}
});
}
}
return apps;
}
Это работает нормально Но, как новый android разработчик, я чувствую, что что-то упустил, и это не может быть так просто. Что-то не так с этим способом выполнения фоновых задач? Например, как я узнаю о ходе выполнения моей задачи, используя этот способ? Заранее спасибо за любые идеи!