gpt4 book ai didi

java - 在 Android 库中获取上下文

转载 作者:搜寻专家 更新时间:2023-10-30 19:58:49 26 4
gpt4 key购买 nike

我正在编写一个 Android 应用程序,它具有封装在内部库中的一些功能。但是,要使此功能起作用,库需要应用程序上下文的实例。为图书馆提供此上下文的最佳方式是什么?我看到了几个选项,但都没有吸引力:

  • 让我的库类扩展 Application,并调用 getApplicationContext()
    • 通常不鼓励这样做
  • 让我的库类都实现单例模式,并让每个调用者在每次获得对单例的引用时传入一个Context
    • 这要求每个调用者在使用库之前检索应用程序上下文,并且还要求调用者调用库的实例,而不是库类上定义的静态方法(因此进一步需要保留对此实例的引用)。

最佳答案

What's the best way to give the library this Context?

Context 传递到您的库公开的需要 Context 的方法中。这就是 Android SDK 在某些地方所做的。

或者,更改您的库以公开对象而不是静态方法,并让对象持有 Context 的实例(提供给创建实例的构造函数或工厂方法)。

Have my library classes extend Application, and call getApplicationContext()

如果您可以在 Context 上调用 getApplicationContext(),您只需执行此操作,而无需子类化 Application

关于java - 在 Android 库中获取上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21069470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com