注意事項(xiàng): 插入單條數(shù)據(jù)不需要開(kāi)啟事務(wù); beginTransaction() 獲取 主連接后不會(huì)釋放,直到調(diào)用 endTransaction(). 所以在此期間如果有另一個(gè)...
注意事項(xiàng): 插入單條數(shù)據(jù)不需要開(kāi)啟事務(wù); beginTransaction() 獲取 主連接后不會(huì)釋放,直到調(diào)用 endTransaction(). 所以在此期間如果有另一個(gè)...
注意事項(xiàng): 如果 SQLiteOpenHelper 使用的是單例,SQLiteDatabase 對(duì) CRUD 操作都是從同一個(gè)連接池中獲取連接. 默認(rèn)情況下, 連接池中只有一...
一、SQLiteOpenHelper 調(diào)用入口 1. SQLiteDatabase 構(gòu)造方法,創(chuàng)建 SQLiteDatabase 對(duì)象 2. db.open() 初始化連接池...
一、構(gòu)造方法 二、獲取數(shù)據(jù)庫(kù) 1. 獲取可讀寫(xiě)數(shù)據(jù)庫(kù) 2. 獲取只讀數(shù)據(jù)庫(kù) 3. 獲取數(shù)據(jù)庫(kù)邏輯 三、開(kāi)啟數(shù)據(jù)庫(kù)并發(fā)功能 四、打開(kāi)或創(chuàng)建數(shù)據(jù)庫(kù) 1. 打開(kāi)數(shù)據(jù)庫(kù)時(shí),如果不存在...
注意事項(xiàng): 插入單條數(shù)據(jù)不需要開(kāi)啟事務(wù); beginTransaction() 獲取 mLock 鎖后不會(huì)釋放,直到調(diào)用 endTransaction(). 所以在此期間如果...
注意事項(xiàng): 如果 SQLiteOpenHelper 使用的是單例,SQLiteDatabase 對(duì) CRUD 操作都會(huì)加上同一個(gè)鎖(因?yàn)槭莇b文件,所以精確至數(shù)據(jù)庫(kù)級(jí)). 所...
使用注意事項(xiàng): getWritableDatabase() 不要放在 UI 線程,存在阻塞和操作耗時(shí)的情況; getReadableDatabase() 優(yōu)先返回 getWr...
一、 調(diào)用流程 二、JobSchedulerService 取消 job 流程 1. 最終調(diào)用該方法 2. 從 mJobs 列表、待執(zhí)行 Job 列表移除 job,處理正在執(zhí)...
一、JobServiceContext 通過(guò) bindService 的方式啟動(dòng) JobService 1. JobServiceContext 中的 executeRunn...
設(shè)置了電量約束條件的 Job 執(zhí)行一次后不會(huì)被移除 一、調(diào)用流程 二、初始化 ChargingTracker 注冊(cè)廣播接收器,初始化當(dāng)前電量狀態(tài) 三、添加需要追蹤的 Job ...
設(shè)置了 Idle 約束條件的 Job 執(zhí)行一次后不會(huì)被移除 一、調(diào)用流程 二、初始化 IdlenessTracker 三、添加需要追蹤的 Job 四、移除不再需要追蹤的 Jo...
滿足 DeadLine 約束條件的 Job 基本會(huì)被立即執(zhí)行,無(wú)論別的約束條件是否滿足 滿足 Time 約束條件后,Job 基本會(huì)被移除 該 Controller 中把 Jo...
設(shè)置了網(wǎng)絡(luò)約束條件的 Job 執(zhí)行一次后不會(huì)被移除 一、調(diào)用流程 二、添加需要追蹤的 Job 三、移除不再需要追蹤的 Job 四、ConnectivityController...
一、調(diào)用流程 二、JobInfo 源碼 三、jobScheduler.schedule(JobInfo)流程 四、JobSchedulerService.schedule(j...
SharedPreferences 的使用隱藏了很多陷阱. 建議: 第一次獲取 Sp 時(shí)不要直接對(duì) Sp 進(jìn)行操作,避免阻塞當(dāng)前線程; Sp 被加載到內(nèi)存后不會(huì)被移除,需要注...