当前位置: 首页 > news >正文

wordpress全站转移北京百度总部

wordpress全站转移,北京百度总部,网络游戏行业防沉迷自律公约,外贸流程ppt您好我有2个应用程序依赖于制作和恢复应用程序数据库的备份,只需将数据库文件复制到SD卡中,然后很难确定如何在关闭它之后重新打开Room Database单例以创建数据库’副本.构建数据库#xff1a;Database(version 15, exportSchema true, entities [list of entities])abstra…您好我有2个应用程序依赖于制作和恢复应用程序数据库的备份,只需将数据库文件复制到SD卡中,然后很难确定如何在关闭它之后重新打开Room Database单例以创建数据库’副本.构建数据库Database(version 15, exportSchema true, entities [list of entities])abstract class AppDatabase : RoomDatabase() {//list of DAOscompanion object {Volatile private var INSTANCE: AppDatabase? nullfun getInstance(context: Context): AppDatabase INSTANCE ?: synchronized(this) {INSTANCE ?: buildDatabase(context).also {INSTANCE it}}private fun buildDatabase(context: Context) Room.databaseBuilder(context.applicationContext,AppDatabase::class.java,Fazendao.sqlitedb).addMigrations(Migration1315).build()}}关闭数据库fun closeDatabase() {if(db.isOpen) {db.openHelper.close()}}使数据库文件复制(在ViewModel中)fun exportaBkpObservable(nome: String, auto: String, storage: File, database: File) {disposable.clear()setFlagsNull()flagSubject.onNext(false)disposable.add(Observable.fromCallable {repo.recordBkpName(nome)}.subscribeOn(Schedulers.io()).flatMap {returnflatMap try {//closing the databaserepo.closeDatabase()Observable.just(database.copyTo(File(storage, auto), true)).flatMap {val myDb SQLiteDatabase.openOrCreateDatabase(it, null)val ok myDb.isDatabaseIntegrityOkif(myDb.isOpen) myDb.close()if(ok) {Observable.just(ok)} else {Observable.error(Throwable(CORRUPTED DATABASE))}}} catch (t: Throwable) {Observable.error(t)}}.subscribe({},{errorFlag exportDB: it.messageerrorSubject.onNext(exportDB: it.message)},{//trying to reopen databaserepo.openDatabase()trueFlag trueflagSubject.onNext(true)}))}repo是注入AppDatabase的存储库,然后在ViewModelFactory中注入.注射object MainInjection {private fun providesIORepo(context: Context): IORepo {return IORepo(AppDatabase.getInstance(context))}fun provideIOViewModelFactory(context: Context): IOViewModelFactory {val data providesIORepo(context)return IOViewModelFactory(data)}}在AppCompatActivity onCreate中val modelFactory MainInjection.provideIOViewModelFactory(this)viewModel ViewModelProviders.of(this, modelFactory).get(IOViewModel::class.java)重新打开数据库fun openDatabase() {if(!db.isOpen){db.openHelper.writableDatabase}}现在错误消息试图重新打开数据库E/ROOM: Invalidation tracker is initialized twice :/.因此当我尝试从另一个函数访问它时崩溃Cannot perform this operation because the connection pool has been closed.关闭数据库后,我有时也会E/ROOM: Cannot run invalidation tracker. Is the db closed?在这篇文章Incrementally migrate from SQLite to Room中,作者为每次访问它打开和关闭数据库,所以我不明白为什么我的实现不起作用.那我在哪里错了有没有办法停用InvalidationTracker我是否应该使用以下代码关闭数据库并在每次必须复制数据库文件时清除Room实例.安全吗fun destroyInstance() {if (INSTANCE?.isOpen true) {INSTANCE?.close()}INSTANCE null}感谢您的关注.解决方法:好的,我开始使用以下代码关闭数据库fun destroyInstance() {if (INSTANCE?.isOpen true) {INSTANCE?.close()}INSTANCE null}并实现了如下导入数据库fun importaBkpObservable(origin: File, database: File) {disposable.clear()setFlagsNull()flagSubject.onNext(false)disposable.add(Observable.fromCallable {try {repo.closeDatabase()val myDb SQLiteDatabase.openOrCreateDatabase(origin, null)val ok myDb.isDatabaseIntegrityOkif (myDb.isOpen) myDb.close()if(ok) {origin.copyTo(database, true)} else {CORRUPTED DATABASE}} catch (t: Throwable) {t.message}}.subscribeOn(Schedulers.io()).subscribe({if(it ! null) {if(it is String) {errorFlag exportDB: $iterrorSubject.onNext(exportDB: $it)} else {trueFlag trueflagSubject.onNext(true)}} else {errorFlag exportDB: GENERICerrorSubject.onNext(exportDB: GENERIC)}},{errorFlag exportDB: ${it.message}errorSubject.onNext(exportDB: ${it.message})}))}我曾经通过startActivityForResult()从我的主要活动导航到导入/导出活动,但现在已经更改为startActivity()在此调用之后完成我的主要活动.导入/导出完成后,我使用startActivity()调用我的主活动,然后完成导入/导出活动.这样我的主要活动ViewModel再次使用新的AppDatabase实例进行实例化,并且一切正常.我查看了Android Profiler,经过多次导入和导出后,内存使用量介于90 MB到130 MB之间,与之前没有关闭数据库时一样,所以我想我没有遇到某种内存泄漏或累积Room Databases实例.我还应该检查什么标签android,android-room来源 https://codeday.me/bug/20190622/1262676.html
http://www.huolong8.cn/news/437804/

相关文章:

  • 网站建设 数据上传 查询惠州营销网站制作
  • 电子商务网站建设可行性 分析网站调用字体
  • 什么是优化网站汉服网站建设毕业设计
  • 制作地图的网站淘宝电脑版官网首页登录入口
  • zend studio 网站开发网络架构师和网络工程师区别
  • 建站专家卖16斤肉赚200元
  • 机关网站建设存在的问题开发公司与物业公司的合同
  • 欧美网站风格成都网站建设的定位
  • 外贸企业网站系统源码网店开店流程
  • 专业网站建设培训机构cp网站开发是什么
  • 重庆网站seo教程邢台123生活信息
  • 电商培训类网站模板外贸订单网站有哪些
  • 公司建立网站的目的微博网站开发与设计开题报告
  • 中国建设银行企业网站首页提升学历有什么好处
  • 网站建设推广培训深圳市梵品品牌设计有限公司
  • 学生网站模板申请00号注册
  • 做行程的网站推荐私人网站服务器
  • 代备案网站空间手机设计免费软件
  • 做企业的网站的如何推广wordpress导入txt
  • 樟木头网站推广京东联盟 wordpress
  • 网站备案填写要求h5制作完成后怎么导出
  • 吴江住宅城乡建设局网站工程公司取名字大全
  • 网站编辑 教程投票网站怎么做的
  • 网站怎么排版企业vi设计策划书
  • 自己公司怎样做免费的网站云盘网页版登录
  • 24小时通过网站备案上海人才服务网
  • 国家建设部门三类人员官方网站网站策划的前景
  • 怎么样建立自己的网页徐州网站优化价格
  • 域名怎么用到自己做的网站故事式软文范例500字
  • 网站建设如何创建框架页面网站网络建设