我有一个显示相册列表的应用程序,然后,一旦选择了相册,就会显示该相册中的照片。我正在使用其中一个谷歌示例的内存缓存/磁盘缓存实现(因为照片是从网站加载的)。一切正常,但每次选择相册时都会进行磁盘缓存初始化,初始化需要相当长的时间。我想声明“全局”磁盘缓存并将其用于所有相册。我不是Java方面的专家,也不清楚如何做到这一点,特别是在调用各种活动时,我不能在从一个活动切换到另一个活动时传递对缓存的引用。是否应将整个缓存逻辑构建为“服务”,然后根据需要“调用”?或者有不同的和/或更好/更优雅的方式吗?
谢谢,
答案 0 :(得分:2)
扩展Application类。
这是一个例子:
public class MyApplication extends Application {
private static MyApplication singleInstance;
//TODO: Your fields here
public void onCreate() {
super.onCreate();
MyApplication.singleInstance = (MyApplication)getApplicationContext();
//TODO: Your initialization code here
}
public static MyApplication getStaticApplicationContext() {
return singleInstance;
}
//TODO: Your methods here
}
您可以添加缓存和相关代码。
您必须在AndroidManifest.xml
文件中引用该类,并在android:name
标记中添加application
属性,如下所示:
<manifest ...>
...
<application ...
android:name="com.example.app.MyApplication">
...
</manifest>