Я создаю свое первое приложение Android, в котором у меня есть класс BaseAdapter
, который выполняет метод, выполнение которого занимает несколько секунд, поэтому я добавил его в блок AsyncTask
следующим образом, чтобы избежать блокировки пользовательского интерфейса:
public class MyAdapter extends BaseAdapter {
List<> items;
public MyAdapter(Context context) {
...
AsyncTask.execute(new Runnable() {
@Override
public void run() {
processImages(); // This method takes several seconds to run and add items to the "items" list
}
});
}
@Override
public int getCount() {
return items.size();
}
...
}
Проблема заключается в том, что метод getCount()
вызывается перед запуском processImages()
fini sh, поэтому список элементов на данный момент равен нулю, есть ли способ подождать, пока этот метод запустить? какая лучшая практика, которой я должен следовать?