Привет поэтому у меня есть следующий код:Держите SwipeRefreshLayout пока задача не закончит работу
В OnCreate:
mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.activity_main_swipe_refresh_layout);
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
refreshContent();
}
});
И в другом методе:
private void refreshContent(){
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
db = new DatabaseHelper(getApplicationContext());
new RefreshScores().execute();
list.clear();
list.addAll(db.getTracked());
db.closeDB();
mSwipeRefreshLayout.setRefreshing(false);
adapter.notifyDataSetChanged();
}
},2000);
}
В настоящее время, когда я тяну вниз в верхней части моего приложения, появляется обновитель и начинает вращаться. Он исчезает через 2 секунды. Тем не менее, я хочу, чтобы он оставался видимым до тех пор, пока не произойдут RefreshScores().execute()
и list.clear(); list.addAll(db.getTracked()); db.closeDB();
. RefreshScores - это AsyncTask. Не совсем уверен, как это сделать.
Изменение таймингов для обновления с 2000 по 5000, а затем попробуйте –
@PavanBilagi. Это просто затянет его на 5 секунд? Нет гарантии, что мой другой код еще не закончен. – user2923535
Нет никакой гарантии, но я надеюсь, что новые RefreshScores(). Execute(); Задача Async завершится в этом интервале –