如何防止Android CursorLoader重新加载?
我正在编写一个android词汇学习应用程序 在如何防止Android CursorLoader重新加载?,android,android-contentprovider,android-cursorloader,Android,Android Contentprovider,Android Cursorloader,我正在编写一个android词汇学习应用程序 在main活动上,我正在使用游标加载程序从数据库加载词汇列表 当用户单击“下一步”按钮时,将更新当前词汇表状态 但每次词汇表状态更新时,都会调用onLoadFinished,并传入一个新光标 我知道这是因为我正在使用ContentProvider并设置通知URI,但当我更新词汇表状态时,我正在使用URI和特定的id: ContentValues cv = new ContentValues(); cv.put(VocabularyContract.V
main活动
上,我正在使用游标加载程序
从数据库加载词汇列表
当用户单击“下一步”按钮时,将更新当前词汇表状态
但每次词汇表状态更新时,都会调用onLoadFinished,并传入一个新光标
我知道这是因为我正在使用ContentProvider
并设置通知URI
,但当我更新词汇表状态时,我正在使用URI
和特定的id
:
ContentValues cv = new ContentValues();
cv.put(VocabularyContract.VocabularyEntry.COLUMN_STATUS, status);
getContentResolver().update(ContentUris.withAppendedId(VocabularyContract.VocabularyEntry.CONTENT_URI, vocabId),
cv,
null,
null);
但是onCreateLoader
中使用的uri
不同,没有id
:
CursorLoader learnCursorLoader = new CursorLoader(this,
VocabularyContract.VocabularyEntry.CONTENT_URI,
null,
VocabularyContract.VocabularyEntry.COLUMN_STATUS + "=" + VocabularyContract.VocabularyEntry.STATUS_LEARNING,
null,
null);
为什么它仍然被重新加载?
如何防止它重新加载?如果这是您自己的数据库,为什么要使用
ContentProvider
?实际上这是一项项目任务,使用ContentProvider是一项要求。嗯,这种方法已经过时多年了。无论如何,我猜想CursorLoader
会在VocabularyContract.VocabularyEntry.CONTENT\u URI
及其子体上为所有内容设置一个ContentObserver
,其中包括您特定的URI
。