为什么不可能以静态方式访问资源?

时间:2012-01-13 09:06:33

标签: android resources

我现在知道,如果我需要在某个静态函数中获取一个recource,我必须以某种方式通过参数或静态变量传递上下文的上下文或资源。但为什么是必要的?资源的ID在静态环境中可以,例如R.string.some_my_stuff。如果我想要一个系统资源,那么它也可以通过Resources.getSystem().getString(android.string.some_common_stuff)看到。但为什么我不能做类似的事情来获得应用程序资源?资源文件是源的常见静态部分。资源静态属于到应用程序。应用程序类以同样的方式属于它,我可以以静态方式访问它们的静态部分。

为什么我不能以相同的静态方式在所有应用程序中使用资源,这是最自然的,但必须通过实例访问它们?

我害怕,我不明白非常重要的事情。

请不要重复,我不能这样做。我知道,我的荣幸。请解释原因,或者告诉我道路......只有这样才能治愈我的悲伤:-)谢谢。

1 个答案:

答案 0 :(得分:3)

资源ID对于每个应用程序都是唯一的,它们并非在所有应用程序(包括Android系统)上都是唯一的。例如。在不同的应用程序中可能有两个不同的字符串具有相同的ID,比如42。 因此,yon可以静态访问一个应用程序(每个程序员必须同意哪个是Android系统(没有选择,它是唯一一个总是安装的))。对于所有其他应用程序,您必须能够告诉系统您要访问哪个应用程序的资源。您可以使用上下文执行此操作。