我在努力理解SQLiteOpenHelper
背後的想法。它有onCreate()
/onUpdate()
應該被覆蓋的方法,但我不明白什麼時候調用它們或什麼時候調用它們。第一次運行應用程序時,Android會調用這些方法(這在我的情況中不會發生),或者我應該手動調用它們?我諮詢了文檔,但找不到我的問題的答案。什麼時候調用SQLiteOpenHelper方法?
1
A
回答
1
當您請求可讀和/或可寫數據庫時(如果未創建),框架將調用'onCreate'等重寫方法。如果您開發應用程序並更改數據庫版本,那麼'onUpgrade'非常有用,這就是它所稱的部分。該框架將佔據最大的部分。你會從數據源類中調用這些方法。 對於更詳細的解釋:http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html
而一個偉大的教程: http://www.vogella.com/articles/AndroidSQLite/article.html
2
它們在創建延伸SQLiteOpenHelper
類和請求讀取/寫入的類的對象時自動調用。
從技術上講,onCreate
方法在檢測到數據庫文件不可用時調用。它只被調用一次,除非您清理應用程序數據。但是onUpdate
被調用時,發現數據庫的版本號增加。
相關問題
- 1. 什麼時候應該在ContentProvider使用的SQLiteOpenHelper上調用close()
- 2. 什麼時候ConvertBack方法被調用?
- 3. 什麼時候調用layoutSubviews方法?
- 4. 當調用SQLiteOpenHelper的onCreate方法時?
- 5. 不調用SQLiteOpenHelper onCreate方法
- 6. 什麼時候調用setDataTimeout?
- 7. 什麼時候調用webview.clearData
- 8. 什麼時候調用robot.cleanUp()
- 9. 什麼時候調用onSizeChanged()?
- 10. 什麼時候使用initWithCoder:方法?
- 11. 你什麼時候使用新方法?
- 12. 什麼時候使用getX方法
- 13. 什麼時候參數化方法調用有用?
- 14. Django中調用的formfield()方法是什麼時候?
- 15. 什麼時候調用MvcHandler.ProcessRequest方法以及由誰?
- 16. 什麼時候iOS觸及方法(取消和結束)調用?
- 17. JAVA:知道什麼時候調用方法
- 18. 你什麼時候在viewWillAppear,viewDidDisappear等中調用超級方法...?
- 19. 什麼時候在spring中調用bean的destroy方法?
- 20. 什麼時候是 - [UIView drawRect:]方法調用?
- 21. 什麼時候應該調用connection.rollback()方法?
- 22. Android回調方法:什麼時候?怎麼樣?從wheech Thread?
- 23. 爲什麼SQLiteOpenHelper不是隻調用SQLiteHelper?
- 24. 什麼時候使用hash()調用__eq__?
- 25. 什麼時候應該調用SharedPreferencesBackupHelper()/ BackupAgent?
- 26. 什麼時候應該調用setContentAspectRatio?
- 27. 什麼時候可以調用BarcodeScanner.GetDefaultAsync()?
- 28. 什麼時候TGraphicControl.Paint被調用?
- 29. 什麼時候在Linq中調用OnValidate?
- 30. 什麼時候應該調用Transaction.delistResource()?