我正在开发一个Android应用程序,需要将资产文件夹中的SQLite数据库复制到手机的数据/数据/数据库目录。
我在MainActivity.java的“onCreate()”方法中调用“copyDB(args [])”方法,但这样每次运行应用程序时都会调用它。
我想在安装,重新安装或更新应用程序时只运行一次“copyDB(args [])”方法。
提前致谢。
答案 0 :(得分:2)
对于一个简单的解决方案,您可以使用SharedPreferences。您存储一个布尔值,该值仅在您复制了所需的所有内容时才为真,并且在复制发生时使用您应用的版本代码存储整数值。
如果布尔值为false,则检查应用程序的每次启动,或者它是否为true但存储的版本代码与当前版本代码不同(发生应用程序更新)。
对于一个更强大的解决方案,我会检查文件系统中是否存在DB文件,而不是仅仅依赖于SP布尔值。
答案 1 :(得分:1)
您需要使用SharedPreferences来保存布尔变量。在第一次运行任务时将其设置为true,然后检查变量,确定是否需要再次运行它。
答案 2 :(得分:0)
如果在第一次发布时运行很快,请查看Intent.ACTION_PACKAGE_FIRST_LAUNCH
。