似乎SQLite(第一印象)临时存储它的数据,同时执行SQLiteOpenHelper并在那里创建表,并在onCreate方法中插入行。 问题是:是否有能力永久存储数据,并且每次启动应用程序时都不会创建数据库和表格?据我所知数据杀死,当用户退出应用程序时? 抱歉我的英语和蹩脚的问题 - 我是Android新手=) 提前谢谢。
答案 0 :(得分:3)
您的初步印象不正确。 SQLite表在Android中是持久的 - 它们根据应用程序的包ID存在于特定目录中的文件中。
SQLiteOpenHelper的想法是将数据库创建和数据库升级封装在一个地方,这样你的数据库使用代码的其余部分就不必担心这些事情了 - 它只是调用帮助程序,当帮助程序返回时,数据库应该是应有的。
这就是帮助器具有'onCreate'方法(在数据库尚不存在时使用)和'onUpdate'方法(在数据库已存在但使用的版本号不同时使用)的原因。
答案 1 :(得分:2)
仅当数据库不存在时才会创建数据库。这是唯一一次调用onCreate
方法。一旦创建,数据库将保持存在,直到您明确删除它或直到卸载该应用程序。
答案 2 :(得分:2)
如果您使用SQLiteOpenHelper
创建数据库,它将在您第一次使用SQLiteOpenHelper
对象时创建,并且它将是永久性的
答案 3 :(得分:1)
请通过在真实设备上运行应用程序来检查。您可能正在模拟器上使用它。
当您在模拟器中启动应用程序时,将创建数据库,当您关闭模拟器时,模拟器创建的临时环境将被销毁,因此您将无法将其恢复。是否在实际设备上运行可能会将数据库永久存储在您的设因此,下次打开应用程序时,它将连接到现有数据库,您可以对其进行操作。
您尚未提供有关您使用的是真实设备还是仿真器的信息,请说明一下。
如果还有其他信息,请告诉我。谢谢。