package com.example.ipcplayer.module; import android.database.Cursor; import android.os.Bundle; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.CursorLoader; import android.support.v4.content.Loader; /** * 对cursorloader回调的抽象 * 子类实现抽象的方法 * */ public abstract class AbstractLoaderCallback implements LoaderCallbacks<Cursor>{ protected CursorLoader mCursorLoader; public abstract CursorLoader createCursorLoader(); public abstract void onDataChanged(Cursor cursor); public abstract void onNoData(); public abstract void onDataReset(); @Override public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) { if(mCursorLoader == null){ mCursorLoader = createCursorLoader(); } return mCursorLoader; } @Override public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) { if(cursor != null && cursor.getCount() != 0){ onDataChanged(cursor); }else { onNoData(); } } @Override public void onLoaderReset(Loader<Cursor> arg0) { onDataReset(); mCursorLoader = null; } }