2012-04-15 147 views
1

似乎SQLite(1-st impression)临时存储它的数据,同时执行SQLiteOpenHelper并在那里创建表,并在onCreate方法中插入行。 问题是:是否有永久存储数据的能力,并且每次启动应用程序时都不会创建数据库和表格?据我了解数据杀死,当用户退出应用程序?
对不起,我的英语和一个跛脚的问题 - 我是新来的Android =) 在此先感谢。Android是否永久存储SQLite数据,还是暂时存储?

+1

感谢大家,你的回答是非常有帮助的 – 2012-04-16 09:34:19

+0

此外,我有发布的答案 - 我可以写入数据到表绕过oncreate方法,我meen不是逐行吗?因为当U有大量数据时,这样做不便于创建表。可能有从SQLite工具插入数据的能力吗? – 2012-04-16 09:39:39

回答

3

您最初的印象是不正确。 SQLite表在Android中是持久的 - 它们根据应用程序的包ID在特定目录中作为文件存在。

SQLiteOpenHelper的想法是将数据库创建和数据库升级封装在一个地方,以便其余的数据库使用代码不必担心这种事情 - 它只是称为助手,当助手返回,数据库完全按照它的样子。

这就是为什么助手有一个'onCreate'方法(在数据库不存在时使用)和一个'onUpdate'方法(当数据库已经存在但有不同版本号时使用) 。

2

仅当数据库不存在时才创建数据库。这是调用onCreate方法的唯一时间。一旦创建完成,数据库将保持存在状态,直到您明确删除它或者卸载应用程序。

2

如果您正在使用SQLiteOpenHelper创建数据库将是创建您使用SQLiteOpenHelper对象第一次,这将是永久性的

1

请通过在真实设备上运行应用程序进行检查。您可能正在模拟器上使用它。

当您在模拟器中启动应用程序时,会创建数据库,并且当您关闭模拟器时,模拟器创建的临时环境将被销毁,因此您将无法恢复它。无论是在实际设备上运行,都可能会在设备上永久存储数据因此,下次打开应用程序时,它将连接到现有数据库,您可以对其执行操作。

您尚未提供关于您是使用真实设备还是仿真器的信息,请描述该信息。

让我知道是否还有什么 - 谢谢。