这听起来像是一个愚蠢的问题,但我正在努力解决这个问题。我正在开发一个报价应用程序,因此我希望每次启动应用程序时都从数据库中随机订购报价。
我正在使用 CursorLoader 和 ViewPager。我在屏幕上有一些按钮(放入收藏夹按钮),它使用内容解析器更新数据库中的列,该内容解析器在 ContentProvider 中触发 update()。然后更新会导致重新查询以更新所做的更改。都是标准的。
这当然会导致由于 random() 子句的 order 而给我排序不同的行,并导致屏幕“消失”。
知道如何解决这个问题吗?我真的很想保留随机排序功能。
class MyContentProvider extends ContentProvider {
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
Cursor cursor = db.query(TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder);
cursor.setNotificationUri(resolver, uri);
return cursor;
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
int count = db.update(TABLE_NAME, values, selection, selectionArgs);
resolver.notifyChange(uri, null);
return count;
}
}