Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android游标加载程序,具有来自不同活动的db_Android_Sql_Sqlite_Android Cursorloader - Fatal编程技术网

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);

    }
}