草庐IT

room_book

全部标签

android - 使用Room时如何加密数据库?

我们想在我们正在开发的应用程序中使用Room,但我们需要加密数据库。我知道有用于加密SQL数据库的SQLCipher(虽然我从未使用过它),但我认为它不支持API级别16和更高级别的方法,所以我认为Room不受支持。另一方面,有支持加密的Realm,但我真的很想改用Room。那么我们如何加密数据库呢?非常感谢 最佳答案 IthinkthatitdoesnotsupportAPIlevel16andhighermethods,soIthinkthatRoomisnotsupported嗯,到目前为止,myCWAC-SafeRoomli

Android Room - 自动生成主键

我遇到一个问题,我无法找到有关RoomforAndroid和自动生成主键的任何文档。我有一个看起来像这样的实体类:@EntitypublicclassPreference{@PrimaryKey(autoGenerate=true)privateintid;publicvoidsetId(intid){this.id=id;}}当我手动设置id时,这工作正常,但当我没有设置主键时,我收到关于主键为null的错误。查看自动生成的文件,我看不到它会自动递增主键的任何地方。所以我想我的问题是:您可以使用setter自动生成私有(private)成员的主键,还是我需要在setter中手动自动生

android - 无法使用 Room persistence 获取查询结果

我正在使用Room持久性库开发一个Android应用程序。我有一个用户和一个汽车实体@Entity(tableName="users")publicclassUser{@PrimaryKey@NonNullprivateintid;privateStringname;publicUser(@NonNullintid,Stringname){this.id=id;this.name=name;}}和@Entity(tableName="cars",foreignKeys=@ForeignKey(parentColumns="id",childColumns="userId",entity

android - 在 Room 中通过 id 获取项目

我在我的Android项目中使用Room+LiveData。按照GoogleBlueprints,我已经实现了我的应用程序的数据层。这是我的Dao的样子:@Query("SELECT*FROMeventsWHEREid=:arg0")funloadSingle(id:String):LiveData我从我的EventRepository调用它:funloadSingle(eventId:String):LiveData>{returnobject:NetworkManager(appExecutors!!){overridefunloadLocal():LiveData{valitem

android - 使用迁移升级 Room DB 会导致数据库锁定

我要回答我自己的问题,这是问题描述。所以我有一个在应用商店上发布的应用程序,随着我想发布的新版本的发布,数据库模式发生了变化,所以我自然必须进行迁移,以将其从版本3升级到最新版本5。这包括提供从3到4和从4到5的迁移。或者一次性从3到5。这就是我所做的,我提供了这些迁移并将它们提供给RoomdatabaseBuilder()并且一切都准备就绪以模拟发生应用程序升级的场景(安装商店版本,运行它,登录,创建数据库,生成生产APK并通过终端将其安装到设备上,运行)这样做总是会产生以下异常:05-1902:38:00.3636472-6522/co.myapp.appE/ROOM:Invali

android - 如何在 Android Room 中存储对象?

基本上,有两件事我不明白:带有对象的对象和带有对象列表的对象假设我从服务器收到一个对象列表。他们每个人看起来像这样:@EntitypublicclassBigObject{@PrimaryKeyprivateintid;privateUseruser;privateListsmallObjects;}将这两个对象作为字段:@EntitypublicclassUser{@PrimaryKeyprivateintid;privateStringname;@TypeConverters(GenderConverter.class)publicMyEnums.Gendergender;}@En

android - 如何在 Room 持久性库中使用外键

我正在使用android中的房间持久性库,如果有人可以帮助我使用外键,如何使用外键获取数据,我将不胜感激。 最佳答案 只是为future的读者总结以上文章:Kotlin中的外键语法是@Entity(foreignKeys=arrayOf(ForeignKey(entity=ParentClass::class,parentColumns=arrayOf("parentClassColumn"),childColumns=arrayOf("childClassColumn"),onDelete=ForeignKey.CASCADE))

android - 如何处理 Android Room 和 RxJava2 没有结果?

我有一个包含表联系人的数据库,我想检查是否有某个电话号码的联系人。@Query("SELECT*FROMcontactWHEREphone_number=:number")FlowablefindByPhoneNumber(intnumber);我有RxJava2Compositedisposable和上面的语句来检查是否有联系电话号码。disposable.add(Db.with(context).getContactsDao().findByPhoneNumber(phoneNumber).subscribeOn(Schedulers.io()).observeOn(Android

android - Android Room Persistence Library:处理错误

我在想如何处理room的错误。我有以下在数据库中插入任务的交互程序:TaskInteractor.javapublicclassTaskInteractorextendsAbstractInteractorimplementsTaskContract.Interactor{finalTaskRepositorymRepository;interfaceCallback{voidonSuccess();voidonFailure(Throwablet);}@InjectpublicTaskInteractor(WorkerThreadworkerThread,MainThreadmain

android - 如何以编程方式检测 "Android App"是否在 chrome book 或 Android 手机中运行

由于Google宣布chromebook也支持“Android应用程序”,所以我也想在chromebook上支持我的应用程序,尽管它运行良好,只有少数异常(exception)需要我修复。我想以这样一种方式编写代码,即只对chromebook执行,不会对android手机和平板电脑执行。我已经查看了Android开发者网站上的Chromebook文档,我没有得到任何此类API来表明您的应用程序正在Chromebook环境中运行。来自ARCBetadocumentation的建议没用:IfyouneedtocheckifyourappisrunningonChromeOS,lookfor