android - Room中如何实现同步(Android持久化库)

标签 android android-room

在普通的 sqlite 中我们可以很容易地实现同步,但是如何在 Room 中实现它

最佳答案

这是 sample它显示了如何将 Room 与 Content Provider 一起使用,然后您可以将 (ContentProvider ) 链接到您的 SynchronizationAdapter。

话虽如此,您可以像这样修改房间模型

@Entity(tableName = Student.TABLE_NAME) 
public class Student { 
    /** The name of the Student table. */ 
    public static final String TABLE_NAME = "student"; 


    /** The name of the ID column. */ 
    public static final String COLUMN_ID = BaseColumns._ID; 


    /** The name of the name column. */ 
    public static final String COLUMN_NAME = "name"; 


    /** The unique ID of the Student*/ 
    @PrimaryKey(autoGenerate = true) 
    @ColumnInfo(index = true, name = COLUMN_ID) 
    public long id; 


    /** The name of the Student*/ 
    @ColumnInfo(name = COLUMN_NAME) 
    public String name; 


    /** 
     * Create a new {@link Studentfrom the specified {@link ContentValues}. 
     * 
     * @param values A {@link ContentValues} that at least contain {@link #COLUMN_NAME}. 
     * @return A newly created {@link Student} instance. 
     */ 
    public static Student fromContentValues(ContentValues values) { 
        final Student student= new Student(); 
        if (values.containsKey(COLUMN_ID)) {
            student.id = values.getAsLong(COLUMN_ID); 
        } 
        if (values.containsKey(COLUMN_NAME)) { 
            student.name = values.getAsString(COLUMN_NAME); 
        }
        return student; 
    }
}

关于android - Room中如何实现同步(Android持久化库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44878623/

相关文章:

android - LogCat 中的双击错误行不起作用

java - Web 服务返回 SID - 如何将结果存储为整数?

java - 如何捕获 Room 持久性库中未处理的异常

kotlin - 使用Room Persistence库,我可以设置自己的主键并自己管理它的 “uniqueness”吗?

android - 如何将 Room TypeConverter 应用于实体的单个字段?

android - 我无法从 json 中获取数据

android - 如何在 Android 项目中使用 Ant build.xml 包含 .jar 文件

android - Google Developers Console - 无法恢复项目以删除客户端 ID

Android ROOM 持久化复杂对象

android - 来自房间数据库的数据不会显示在回收站 View 中。可能出了什么问题?