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

时间:2010-09-01 14:43:00

标签: android

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

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

3 个答案:

答案 0 :(得分:2)

  

首次打开应用时,我正在SQLite数据库中保存可绘制的资源ID值。

这是一个坏主意。

  

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

没有。它们会因编译而异。

答案 1 :(得分:2)

Resource IDs are generated when your application is compiled因此在安装应用程序后它们不会更改。

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

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

答案 2 :(得分:-1)

如果您打开R.java,您会注意到每个属性都定义为public static final