static class CouponShopQueryLoader2 extends
AsyncTaskLoader<List<CouponStore>> {
private List<CouponStore> mData;
private int couponId;
public CouponShopQueryLoader2(Context context, int couponId) {
super(context);
this.couponId = couponId;
}
// final ForceLoadContentObserver mObserver;
/* Runs on a worker thread */
@Override
public List<CouponStore> loadInBackground() {
mData = ds.queryShopByCoupon(couponId, pageNo, PAGE_SIZE);
return mData;
}
/* Runs on the UI thread */
@Override
public void deliverResult(List<CouponStore> data) {
if (isReset()) {
return;
}
if (isStarted()) {
super.deliverResult(data);
}
}
/**
* Starts an asynchronous load of the contacts list data. When the
* result is ready the callbacks will be called on the UI thread. If a
* previous load has been completed and is still valid the result may be
* passed to the callbacks immediately.
*
* Must be called from the UI thread
*/
@Override
protected void onStartLoading() {
if (mData != null) {
deliverResult(mData);
}
if (takeContentChanged() || mData == null) {
forceLoad();
}
}
/**
* Must be called from the UI thread
*/
@Override
protected void onStopLoading() {
Log.d("sss", "onStopLoading");
// Attempt to cancel the current load task if possible.
cancelLoad();
}
@Override
public void onCanceled(List<CouponStore> cursor) {
Log.d("sss", "onCanceled");
}
@Override
protected void onReset() {
super.onReset();
Log.d("sss", "onReset");
// Ensure the loader is stopped
onStopLoading();
mData = null;
}
} </pre><a href="/misc/goto?guid=4959617054796548353" target="_blank" title="派生到我的代碼片" style="text-indent:0;"></a></div>
</div>
</div>
修改后,重復加載的現象解決了,究其原因是沒有重寫
</div>
</div>
/**
* Must be called from the UI thread
*/
@Override
protected void onStopLoading() {
Log.d("sss", "onStopLoading");
// Attempt to cancel the current load task if possible.
cancelLoad();
} </pre><br />