代码之家  ›  专栏  ›  技术社区  ›  james

每次安装的资源标识号是否保持不变?

  •  1
  • james  · 技术社区  · 15 年前

    我的目标是: 创建一个图像库,其中每个图像都有描述、名称、标题和其他可能的杂项信息。当用户浏览图库时,将显示图像信息。我计划将数据存储在地图的数组列表中 ArrayList<Map<String, String>> 从数据库中填充。该列表将在图像信息中包含资源ID值。

    问题: 第一次打开应用程序时,我正在将可绘制资源ID值保存在sqlite数据库中。从那时起,我将引用sqlite存储的资源ID值,而不是通过这个直接检索资源 R.drawable.drawable_name 时尚。我能保证在安装应用程序后资源ID值永远不会改变吗?

    3 回复  |  直到 15 年前
        1
  •  2
  •   David Webb    15 年前

    这个 Resource IDs are generated when your application is compiled 所以在安装应用程序后它们不会改变。

    但是,如果您发布应用程序的新版本,那么资源ID几乎肯定会更改。因此,您需要检测升级并重建数据库,或者不通过这种方式访问资源。

    如果您说通过将资源ID放入数据库来解决什么问题,有人可能会给您一个不那么脆弱的解决方案。

        2
  •  2
  •   CommonsWare    15 年前

    第一次打开应用程序时,我正在将可绘制资源ID值保存在sqlite数据库中。

    这是个坏主意。

    我能保证在安装应用程序后资源ID值永远不会改变吗?

    不,它们会随编译而变化。

        3
  •  -1
  •   Macarse    15 年前

    对。

    如果你打开 R.java 您会注意到,每个财产都被定义为 public static final .