0

我正在开发一个需要将 SQLite 数据库从 assets 文件夹复制到手机的 data/data/databases 目录的 android 应用程序。

我在 MainActivity.java 的“onCreate()”方法中调用“copyDB(args[])”方法,但是这样每次运行应用程序时都会调用它。

在安装、重新安装或更新应用程序时,我只想运行一次“copyDB(args[])”方法。

提前致谢。

4

3 回答 3

2

对于一个简单的解决方案,您可以为此使用 SharedPreferences。您存储一个布尔值,该值仅在您复制了所有您想要的内容时才为真,并在复制发生时存储一个带有应用程序版本代码的整数值。

如果布尔值为 false,或者为 true,但存储的版本代码与当前版本代码不同(发生应用程序更新),您会检查应用程序的每次启动。

对于更强大的解决方案,如果数据库文件存在,我会检查文件系统,而不是仅仅依赖于 SP 布尔值。

于 2013-08-10T08:19:15.783 回答
1

您需要使用 SharedPreferences 来保存布尔变量。第一次运行任务时将其设置为 true,然后检查变量以确定是否需要再次运行它。

于 2013-08-10T08:19:07.970 回答
0

如果在首次启动时运行足够快,请查看Intent.ACTION_PACKAGE_FIRST_LAUNCH.

于 2013-08-10T09:11:29.743 回答