android游标加载程序,具有来自不同活动的db
我访问另一个活动中使用的活动中的数据库。但是,当我在数据库上使用android游标加载程序,具有来自不同活动的db,android,sql,sqlite,android-cursorloader,Android,Sql,Sqlite,Android Cursorloader,我访问另一个活动中使用的活动中的数据库。但是,当我在数据库上使用getContentResolver.update()时,它不会在我的游标加载程序中更新,尽管它访问相同的数据库(它是相同的查询)。当我将查询转储到数据库时,它会显示更新的值,但是游标加载程序不会 以下是我的onCreateLoader方法: @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { Uri queryUri;
getContentResolver.update()
时,它不会在我的游标加载程序中更新,尽管它访问相同的数据库(它是相同的查询)。当我将查询转储到数据库时,它会显示更新的值,但是游标加载程序不会
以下是我的onCreateLoader方法:
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
Uri queryUri;
if(id == ID_LOADER_PORTFOLIO) {
String[] projection = null;
String selection = null;
String[] selectionArguments = null;
queryUri = MainFeedContract.CONTENT_URI;
return new CursorLoader(this,
queryUri,
MainActivity.COLUMN_NAMES,
selection,
selectionArguments,
null);
}
return null;
}
尝试更新数据库时是否出错?:/ 您可能需要注册ContentObserver 在onResume()中调用此方法 DataObserver类
class DataObserver extends ContentObserver {
public DataObserver(Handler handler) {
super(handler);
}
@Override
public void onChange(boolean selfChange, Uri uri) {
getLoaderManager().restartLoader(0, null, this);
}
}
public void registerDataObserver() {
try {
getContext().getContentResolver().registerContentObserver(MainFeedContract.CONTENT_URI, true, new DataObserver(new Handler()));
} catch (IllegalStateException ise) {
}
}
class DataObserver extends ContentObserver {
public DataObserver(Handler handler) {
super(handler);
}
@Override
public void onChange(boolean selfChange, Uri uri) {
getLoaderManager().restartLoader(0, null, this);
}
}