我正在编写一个Android天气应用,需要一个城市信息列表。
列表很长,花了很长时间才能从互联网上下载。
所以我想将它保存在我的.apk文件中,并在没有互联网连接的情况下加载它,但不知道如何。
我试图将它保存在java类中,但它太庞大并且需要大量内存。
有什么方法可以解决吗?谢谢!
答案 0 :(得分:2)
我假设您可能有某种类型的json / xml数据,如果是这样,您希望预先打包应用程序,然后将json / xml加载到res / assets中,它只是一个文件包含在你的apk中。
https://developer.android.com/guide/topics/resources/accessing-resources.html
答案 1 :(得分:1)
您可以将其存储在 SQLite数据库中,或使用纯文本,然后将其保存在应用项目的原始资源或资源资源中。
对于SQLite,请尝试Android SQLiteAssetHelper,它将帮助您存储来自预定义数据库的数据。
这里摘自其自述文件:
用于管理数据库创建和版本的Android帮助程序类 管理使用应用程序的原始资产文件。
此类为开发人员提供了一种发布Android的简单方法 具有现有SQLite数据库的应用程序(可以预先填充 数据)并管理其初始创建和所需的任何升级 随后的版本发布。
它是作为SQLiteOpenHelper的扩展实现的,提供了一个 ContentProvider实现推迟开放的有效方法 升级数据库直到第一次使用。
而不是实现onCreate()和onUpgrade()方法 执行一堆SQL语句,开发人员只需包含 在项目的资产目录中适当命名的文件资产。 这些将包括用于创建的初始SQLite数据库文件 可选地任何SQL升级脚本。
答案 2 :(得分:0)
您可以使用xml资源中的arrays
。例如
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="cities">
<item>New York</item>
<item>London</item>
<item>Moscow</item>
....
</string-array>
</resources>