如何在android上运行一次任务,仅在安装上运行

时间:2013-08-10 08:12:14

标签: android adt

我正在开发一个Android应用程序,需要将资产文件夹中的SQLite数据库复制到手机的数据/数据/数据库目录。

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

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

提前致谢。

3 个答案:

答案 0 :(得分:2)

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

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

对于一个更强大的解决方案,我会检查文件系统中是否存在DB文件,而不是仅仅依赖于SP布尔值。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

如果在第一次发布时运行很快,请查看Intent.ACTION_PACKAGE_FIRST_LAUNCH