虽然我发现了一些关于这个话题的有趣的帖子,但没有一个与这种情况或类似的情况有关。我正在开发一个应用程序,它使用GoogleMaps应用程序接口来显示地图,我想有一个数据库,其中将用于存储我的所有兴趣点(例如警察局,医院的位置,总共478个单位),这将被放置在地图上的标记后。
这些值只会在应用程序第一次启动时插入一次,所以我猜我不需要多个线程或多个SQLiteHelpers实例就可以做到这一点。也许他们中的一个人应该足够做这项工作,或者不?也许值得一提的是,用户不可能与数据库进行交互。
到目前为止,我有两个活动,第一个是我的InitActivity,我在那里准备了一些,并检查了一些对应用程序重要的东西,第二个是我的MainActivity。我想在应用程序启动时就开始在InitActivity中插入数据,但如果可以不等待整个过程结束以启动MainActivity,而是在数据插入开始时也开始插入数据。在插入完成后,我想调用其他方法,它将在地图上放置每个兴趣点的标记。此方法应从MainActivity执行。因此,我需要一个后台任务,它在一个活动中启动,并通知其他活动该操作已完成。
那么,我可以使用什么来执行这种数据插入任务,最好的方法是什么(例如AsyncTask -但是否可以通知其他活动该过程已完成)
提前进行Thx
发布于 2015-05-19 03:14:00
你在这里几乎是在试图发明轮子,这是浪费精力,因为这个东西已经发明了很长时间了。你很可能会喜欢使用像Android SQLiteAssetHelper这样的工具或者其他类似的助手。
安卓SQLiteAssetHelper
一个Android助手类,使用应用程序的原始资产文件管理数据库创建和版本管理。
这个类为开发人员提供了一种简单的方法,可以将他们的安卓应用程序与现有的SQLite数据库(可能预先填充了数据)一起发布,并管理其初始创建和后续版本发布所需的任何升级。
它是作为SQLiteOpenHelper的扩展实现的,为ContentProvider实现提供了一种有效的方法,可以将数据库的打开和升级推迟到第一次使用。
而不是实现onCreate()和onUpgrade()方法来执行一堆SQL语句,开发人员只需在项目的assets目录中包含适当命名的文件资产即可。其中包括用于创建的初始SQLite数据库文件,以及可选的任何SQL升级脚本。
https://stackoverflow.com/questions/30310783
复制相似问题