安卓利用LoaderManager 检测数据源变化
LoaderManager:用来管理Loader,而Loader就是对应的数据源的加载器,当数据源发生变化,会触发onLoadFinished
activity.getSupportLoaderManager().initLoader(0, null, new LoaderManager.LoaderCallbacks<Cursor>() {
@Override
public Loader<Cursor> onCreateLoader(int loaderID, Bundle args) {
switch (loaderID)
{
case 0:
CursorLoader cursorLoader = new CursorLoader(activity,
DBChatSessionView.CONTENT_URI,
new String[]{"sum(" + ccc+ ")"},
null,
null,
null
);
cursorLoader.setUpdateThrottle(100);
return cursorLoader;
default:
break;
}
return null;
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor returnCursor) {
if(loader.getId() == 0)
{
if (returnCursor != null && returnCursor.getCount() > 0)
{
returnCursor.moveToPosition(-1);
while (returnCursor.moveToNext())
{
int count = returnCursor.getInt(0);
if(onChatUnreadCountListener != null)
{
onsasCountListener.ondsdeadCount(count);
}
}
}
}
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
}
});
} catch (Exception e) {
}