首次运行我的应用时,它会创建5个表并插入大约50个初始值。如果需要,用户可以删除任何这些初始值,并且他们将添加它们。
在这种情况下,创建db文件并在第一次运行时将其复制并在onCreate中放入一堆create / insert语句之间的优缺点是什么?
至关重要的是,用户信息不会被覆盖,因此我倾向于创建/插入语句,因为如果某些错误触发onCreate(如果可能的话),那些将失败/次要,而复制db文件将擦除数据库。
答案 0 :(得分:0)
就你复制整个数据库的缺点而言,我认为你已经回答了自己的问题。 (虽然我喜欢复制数据库以进行单元测试。)如果您正在寻找一种不那么繁琐的方法来填充这五十个值,您可以尝试在sqlite3中使用.dump并将所有这些插入语句放入一个资源中。
另一方面,如果在不应该调用onCreate时,你可能会担心更大的问题。
答案 1 :(得分:0)
打包sqlite db没有任何好处,而不是创建它IMO,只需选择一个并相应的代码,担心你的代码出错了,并决定使用一种或另一种方法,这只是一个补丁糟糕的节目。
没有冒犯意味着,我只是认为你问这个问题的原因是对的,真正的区别在于决定只复制的东西,但是让APK更大,但也许比创建和填充更快。
我个人从头开始创建数据库,你只会“执行一次”,除非您的更新需要修改数据库或用户删除数据。我宁愿让用户等一会儿,只需一次,让APK相当于更轻的KB。