java - Android 开发字符串数组资源太大,导致 Android 应用程序崩溃!

标签 java android arrays

我有一个包含大约 1000 个药物名称的字符串数组资源

<string-array name="index">
<item>Aspirin</item>
  <item>Levitra</item>
  ....
</string-array>

我试图将这个字符串数组加载到 Activity 中的 String[] 中。 使用此处提供的 Google java 文档提供的相同语法。 http://developer.android.com/guide/topics/resources/string-resource.html#StringArray

Resources res = getResources();
String[] drugs = res.getStringArray(R.array.index);

似乎我的字符串数组有太多记录,它导致我的应用程序崩溃(堆栈溢出?)当我将字符串数组资源减少到大约 506 条记录时,应用程序再次运行,但甚至添加了 1 个元素在字符串数组中会使应用程序崩溃。

我该怎么办?我想编写逻辑代码来过滤列表并对其执行其他操作。我的应用程序中没有 SQL 数据库,因此无法在数据库中进行处理。有没有一种方法可以在不将字符串数组资源加载到 String [] 中的情况下遍历字符串数组资源?我注意到资源是一个指针。或者是否有可行的替代数据结构或方法?

谢谢,

最佳答案

您是否有不想使用 SQL 数据库的原因?我强烈建议设置 SQLite 数据库。字符串数组不是为这种大小的数据设计的。您的应用会变慢,并且会消耗大量内存。

我能想到的唯一替代方法是使用单独的字符串并拥有一个字符串 ID 值数组 - 这应该可行。

关于java - Android 开发字符串数组资源太大,导致 Android 应用程序崩溃!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4272828/

相关文章:

java - 使用 Hibernate EntityManager(与 Hibernate Core 相比)有什么缺点吗?

android - 如何在 Android 中动态创建按钮?

java - 在签名为 return int 的方法中返回 null?

java - 在 SDK 之外开发 Android

android - 通用AsyncTask,在多个上下文中使用一个AsyncTask

php - 选择部分 JSON 并检查值是否为空

arrays - 如何在没有循环的情况下初始化哈希值?

java - 将数组中的对象与同一数组中的所有其他对象进行比较

java - Array-2 zeromax codingbat

java - 限制安卓文件大小