Итак, вот метод, который я нашел в большинстве руководств SwipeRefreshLayout, но мне кажется, что это глупо.Как сделать postDelayed работой по назначению?
Что он делает: он обновляет анимацию за 2000 мс до фактического doStuff().
Что я (очевидно !!) хочу сделать: обновить анимацию, пока она делает doStuff(), а затем остановится. Не требуется таймер! Я делаю что-то неправильно ? Интернет говорит мне нет ...
view.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
swipeEmptyView.setRefreshing(true);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doStuff();
swipeEmptyView.setRefreshing(false);
}
}, 2000);
}
});
Как бы вы реализовали свой метод doStuff()? –
public void doStuff() { System.out.println ("Test");} или я ничего не знаю, что занимает немного времени. Я хочу, чтобы он продолжал освежать, когда делал что-то. – Waroulolz
FYI, большинство учебных пособий о SRL использует postDelayed, чтобы показать вам, как это работает, поэтому точка не является частью PostDelayed. Предположим, что вы хотите сделать HTTP-запрос для обновления ваших данных, вам «очевидно» нужно добавить его в AsyncTask. Поэтому рассмотрим возможность использования метода onPreExecute для начала загрузки анимации и остановки анимации в onPostExecute. Я могу помочь вам реализовать код, если вы не можете –