Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何正确管理android应用程序的上下文(非活动类)_Java_Android - Fatal编程技术网

Java 如何正确管理android应用程序的上下文(非活动类)

Java 如何正确管理android应用程序的上下文(非活动类),java,android,Java,Android,类似的帖子没有我想要的答案。 问题描述: 我有一组实用程序类,其中一些编写文件。其他人可能使用数据库等。重点是我的多个实用程序类需要上下文。一个简单的例子是通过context.getString(r.strings.id)读取strings.xml 我想在大多数情况下,我希望避免单身。除非绝对必要,否则我会选择单身。这个问题已经解决并发布在其中一个链接上。我个人认为它们是ATI模式。只是个人的选择。据我所知,您的应用程序上下文定义为单例对象。每个应用程序上下文只有一个应用程序。如果这是唯

类似的帖子没有我想要的答案。

问题描述:

我有一组实用程序类,其中一些编写文件。其他人可能使用数据库等。重点是我的多个实用程序类需要上下文。一个简单的例子是通过context.getString(r.strings.id)读取strings.xml

我想在大多数情况下,我希望避免单身。除非绝对必要,否则我会选择单身。这个问题已经解决并发布在其中一个链接上。我个人认为它们是ATI模式。只是个人的选择。据我所知,您的应用程序上下文定义为单例对象。每个应用程序上下文只有一个应用程序。如果这是唯一的办法,我愿意接受上述选择

问题:

我的实用程序类如何访问我的应用程序上下文,这样我就可以简单地执行新的MyContext()。此上下文需要引用应用程序资源。我认为当从活动调用时,它被称为applicationContext()。理想情况下,这将是一个廉价的操作

多谢各位

编辑:(澄清)
我正在编写一个应用程序将自己绑定到的服务。我认为这不应影响答案。再次感谢。

我认为最安全的方法是将上下文实例传递给需要访问resrouces等的每个函数。这似乎是API采用的常见做法。事实上,我很困惑,为什么这么多函数似乎需要一个上下文实例,直到出现这种情况。

这似乎是一个很大的簿记工作。我将等待其他答案。现在,所有需要上下文的函数/对象都在构造函数或函数本身上添加了一个参数。很好的解释,再加上你已经知道的。但是如果你不想使用ApplicationContext(),你在寻找什么呢?@enterco:我希望有一种优雅的方式来做同样的事情。我确实希望获得ApplicationContext,我认为在这种情况下接受单例是有意义的。实际上,我下载了Froyo的整个android源代码,并查看了谷歌处理这个问题的方式。事实证明,对于我所研究的所有类,上下文都是作为参数传递的,或者作为参数传递。到Ctor或arg。对函数进行修改。更具体地说,如果您查看froyo发行版的内部,在这个路径下是packages/apps/Contacts/src/com/android/Contacts/util/*