所以我有这个ListView
,我想向下滚动并刷新。我正在使用SwipeRefreshLayout
并且它工作得很好,除了我无法安排Handler
方法中的onRefresh()
等待的时间。所以这是onRefresh()
@Override
public void onRefresh() {
final String net = getString(R.string.alertin);
final String netErr = getString(R.string.alert_intext);
ConnectivityManager conn = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ntwrkInf = conn.getActiveNetworkInfo();
if (ntwrkInf != null && ntwrkInf .isConnected()) {
ListReq refList = new ListReq();
refList.execute();
} else {
AlertDialogDisp(Main.this, net, netErr);
}
new Handler().postDelayed(new Runnable() {
@Override public void run() {
mSwipeRefreshLayout.setRefreshing(false);
}
}, 5000); // so it's here, I just put 5000 randomly.
}
并且正如您所期望的那样,5000 Asynctask
完成其工作的数量不合适。我如何安排这个并获得令人耳目一新的动画'完成Asynctask结束?
提前致谢
答案 0 :(得分:0)
在AsyncTask中,方法是postExecute(),当AsyncTask完成其工作时,它将被调用。 所以只需要在正确的时间通知asynk电话。没有arbiraly将其设置为5000
答案 1 :(得分:0)
在AsyncTask覆盖方法onPostExecute()
。当AsyncTask完成其任务时,将调用此方法。
会是这样的:
public class Task extends AsyncTask<Void, Void,Void> {
protected void doInBackground(Void ...) {
//Your process
}
@Override
protected void onPostExecute(Void...) {
//Call your onRefresh()
}