package com.campus.prime.ui;
import android.content.Context;
import android.support.v4.content.AsyncTaskLoader;
public abstract class AsyncLoader<D> extends AsyncTaskLoader<D>{
private D data;
public AsyncLoader(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
protected abstract D loadData();
@Override
public D loadInBackground() {
// TODO Auto-generated method stub
return loadData();
}
@Override
public void deliverResult(final D data) {
// TODO Auto-generated method stub
if(isReset()){
return;
}
this.data = data;
super.deliverResult(data);
}
@Override
protected void onStartLoading() {
// TODO Auto-generated method stub
if(data != null){
deliverResult(data);
}
if(takeContentChanged() || data == null){
forceLoad();
}
}
@Override
protected void onStopLoading() {
// TODO Auto-generated method stub
cancelLoad();
}
@Override
protected void onReset() {
// TODO Auto-generated method stub
super.onReset();
onStopLoading();
data = null;
}
}