热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

从活动的onCreate内的`launch`块中读取/写入DB是否安全?

如何解决《从活动的onCreate内的`launch`块中读取/写入DB是否安全?》经验,为你挑选了1个好方法。

当我尝试从协程(为此创建了一个新的)块访问数据库时IllegalStateException,我的android应用正在生产中崩溃,并带有SQLiteDiskIOExceptionSQLiteCantOpenDatabaseException等不同异常。launchCoroutineScopeioCoroutineContext + SupervisorJob()

从这样的launch块进行数据库访问是否健康?除此之外,由于这是对应用程序中数据库的首次访问,因此它将运行数据库迁移(如果有)。



1> Mr. Patel..:

对于数据库操作,我相信使用带有Default或IO线程的异步模式更好。

例如我正在一个应用程序中,在recyclerview绑定视图持有人中在主线程中以启动模式作为协程进行db sqlite操作,但是通过这样做,我的recycler视图滞后了很多,所以我不使用启动,而是在默认情况下转到异步数据库操作线程,进一步提高了性能。

正如@MarkoTopolnik的Per回答,我完全同意他的观点,在处理sqlite时,您的问题可能是多线程问题,您需要精确地了解事情的实际执行方式。


Dispatchers.Default和Dispatchers.IO只是两个线程池,除了允许启动多少个线程的策略外,在所有方面都相等。“默认”是针对CPU绑定工作而优化的,最多可运行“ availableProcessors()”线程,而“ IO”则用于阻止操作,它是一个弹性线程池,默认情况下最多可启动1000个线程。因此,绝对不要使用“默认”来阻止网络操作。
推荐阅读
  • MySQL锁机制详解
    本文深入探讨了MySQL中的锁机制,包括表级锁、行级锁以及元数据锁,通过实例详细解释了各种锁的工作原理及其应用场景。同时,文章还介绍了如何通过锁来优化数据库性能,避免常见的并发问题。 ... [详细]
  • 本文探讨了如何利用SqlDependency执行复杂的SQL查询,并确保在多线程环境下的安全性与效率。 ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • 深入解析Android中的SQLite数据库使用
    本文详细介绍了如何在Android应用中使用SQLite数据库进行数据存储。通过自定义类继承SQLiteOpenHelper,实现数据库的创建与版本管理,并提供了具体的学生信息管理示例代码。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 探讨HTML中的DIV样式难题
    本文深入分析了HTML中常见的DIV样式问题,并提供了有效的解决策略。适合所有对Web前端开发感兴趣的读者。 ... [详细]
  • 迎接云数据库新时代:程序员如何应对变革?
    在数据无处不在的时代,数据库成为了管理和处理数据的核心工具。从早期的信息记录方式到现代的云数据库,数据库技术经历了巨大的变革。本文将探讨云数据库的特点及其对程序员的影响。 ... [详细]
  • 本文详细列举了软件开发中常见的功能测试要点,涵盖输入框、搜索、添加/修改、删除、文件上传下载等多个方面,旨在帮助测试人员全面覆盖测试需求,确保软件质量。 ... [详细]
  • 优化Input Checkbox与Label文本对齐的方法
    本文探讨了在网页设计中,如何有效解决input checkbox与label文字不对齐的问题。通过具体的代码实例和解决方案,帮助开发者实现更加美观的用户界面。 ... [详细]
  • 本文旨在详细介绍如何在PL/SQL环境中调试Oracle数据库中的触发器。虽然触发器能够实现某些复杂的功能,但其使用可能增加系统的维护难度。因此,本文不仅提供技术指导,还讨论了触发器使用的利弊。 ... [详细]
  • Mac下 运行Win7虚拟机内SQL Server 2008 Management Studio 如何访问外接移动硬盘 ... [详细]
  • Redis安全防护深入解析
    本文详细探讨了如何通过指令安全、端口管理和SSL代理等措施有效保护Redis服务的安全性。 ... [详细]
  • 本文详细介绍了重新安装智能手机操作系统的方法,包括恢复出厂设置和刷机两种方式,帮助用户了解正确的操作步骤和注意事项。 ... [详细]
  • 本文深入探讨Java编程语言的关键特性,包括但不限于其简洁性、强大的面向对象能力、跨平台兼容性、安全机制、高效性能及多线程支持等方面。文章旨在为开发者提供全面理解Java特性的指导。 ... [详细]
author-avatar
手机用户2502853923
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有