我发布这个问题是希望能得到某种明确的答案。
如果没有 Activity 或上下文引用,真的不可能访问资源吗?当只需要访问一些与 UI 无关的值、 Assets 或字符串时,传递此类引用会导致代码过于复杂。
加上所有那些潜在的悬挂引用。
这也完全破坏了各种设计模式,例如单例,在获取实例时必须提供参数。
放置静态引用
那么有没有办法或者整个社区是否都可以解决这个问题。
最佳答案
您的资源绑定(bind)到上下文,这是事实,您无法更改。
以下是您可以执行的操作:
扩展 Application
,获取应用程序上下文并将其用作静态助手。
public class App extends Application {
private static Context mContext;
public static Resources getResources() {
return mContext.getResources();
}
public void onCreate() {
super.onCreate();
mContext = getApplicationContext();
}
}
您的 list :
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:name="your.package.path.to.App">
关于Android:在没有 Activity 或 Context 引用的情况下访问资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7531959/