如何在Android中全局声明资源

时间:2014-01-03 22:53:43

标签: java android caching global-variables global

我有一个显示相册列表的应用程序,然后,一旦选择了相册,就会显示该相册中的照片。我正在使用其中一个谷歌示例的内存缓存/磁盘缓存实现(因为照片是从网站加载的)。一切正常,但每次选择相册时都会进行磁盘缓存初始化,初始化需要相当长的时间。我想声明“全局”磁盘缓存并将其用于所有相册。我不是Java方面的专家,也不清楚如何做到这一点,特别是在调用各种活动时,我不能在从一个活动切换到另一个活动时传递对缓存的引用。是否应将整个缓存逻辑构建为“服务”,然后根据需要“调用”?或者有不同的和/或更好/更优雅的方式吗?

谢谢,

1 个答案:

答案 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>