注意事项: 插入单条数据不需要开启事务; beginTransaction() 获取 主连接后不会释放,直到调用 endTransaction(). 所以在此期间如果有另一个...
注意事项: 插入单条数据不需要开启事务; beginTransaction() 获取 主连接后不会释放,直到调用 endTransaction(). 所以在此期间如果有另一个...
注意事项: 如果 SQLiteOpenHelper 使用的是单例,SQLiteDatabase 对 CRUD 操作都是从同一个连接池中获取连接. 默认情况下, 连接池中只有一...
一、SQLiteOpenHelper 调用入口 1. SQLiteDatabase 构造方法,创建 SQLiteDatabase 对象 2. db.open() 初始化连接池...
一、构造方法 二、获取数据库 1. 获取可读写数据库 2. 获取只读数据库 3. 获取数据库逻辑 三、开启数据库并发功能 四、打开或创建数据库 1. 打开数据库时,如果不存在...
注意事项: 插入单条数据不需要开启事务; beginTransaction() 获取 mLock 锁后不会释放,直到调用 endTransaction(). 所以在此期间如果...
注意事项: 如果 SQLiteOpenHelper 使用的是单例,SQLiteDatabase 对 CRUD 操作都会加上同一个锁(因为是db文件,所以精确至数据库级). 所...
使用注意事项: getWritableDatabase() 不要放在 UI 线程,存在阻塞和操作耗时的情况; getReadableDatabase() 优先返回 getWr...
一、 调用流程 二、JobSchedulerService 取消 job 流程 1. 最终调用该方法 2. 从 mJobs 列表、待执行 Job 列表移除 job,处理正在执...
一、JobServiceContext 通过 bindService 的方式启动 JobService 1. JobServiceContext 中的 executeRunn...
设置了电量约束条件的 Job 执行一次后不会被移除 一、调用流程 二、初始化 ChargingTracker 注册广播接收器,初始化当前电量状态 三、添加需要追踪的 Job ...
设置了 Idle 约束条件的 Job 执行一次后不会被移除 一、调用流程 二、初始化 IdlenessTracker 三、添加需要追踪的 Job 四、移除不再需要追踪的 Jo...
满足 DeadLine 约束条件的 Job 基本会被立即执行,无论别的约束条件是否满足 满足 Time 约束条件后,Job 基本会被移除 该 Controller 中把 Jo...
设置了网络约束条件的 Job 执行一次后不会被移除 一、调用流程 二、添加需要追踪的 Job 三、移除不再需要追踪的 Job 四、ConnectivityController...
一、调用流程 二、JobInfo 源码 三、jobScheduler.schedule(JobInfo)流程 四、JobSchedulerService.schedule(j...
SharedPreferences 的使用隐藏了很多陷阱. 建议: 第一次获取 Sp 时不要直接对 Sp 进行操作,避免阻塞当前线程; Sp 被加载到内存后不会被移除,需要注...