为什么无法以静态方式访问资源?
我现在知道,如果我需要在某个静态函数中获得recource,我必须通过参数或静态变量以某种方式传递上下文或recurrent资源。 但为什么它是必要的? 资源的ID在静态环境中可以访问,例如R.string.some_my_stuff
。 如果我想要一个系统资源,那么通过Resources.getSystem().getString(android.string.some_common_stuff)
也可以看到它。 但为什么我不能做类似的事情来获得应用程序资源? 资源文件是源代码的常用静态部分。 资源是静态的 , 属于应用程序。 应用程序的类以相同的方式属于它,我可以静态方式访问它们的静态部分。
为什么我不能以相同的静态方式在所有应用程序中使用资源,这将是最自然的,但必须通过实例访问它们?
我害怕,我不明白一件非常重要的事情。
请不要重复我不能这样做。 我知道这是我的荣幸。 请解释为什么,或者告诉我方式......只有这样才能治愈我的悲伤:-)谢谢。
资源ID对于每个应用程序都是唯一的,它们在所有应用程序(包括Android系统)中都不是唯一的。 例如,在不同的应用程序中可能有两个不同的字符串,它们具有相同的ID,比如42。因此,yon可以静态地访问一个应用程序(每个程序员必须同意哪一个是Android系统(没有选择,它是唯一的始终安装))。 对于所有其他应用程序,您必须能够告诉系统您要访问哪个应用程序的资源。 你使用上下文来做到这一点。
链接地址: http://www.djcxy.com/p/10299.html上一篇: Why it is impossible to access resources in a static way?
下一篇: Debugger only stops at breakpoints, will not "step over"