我有一个包含多个活动和大量图像资源的应用程序。我希望能够在启动画面中加载这些资源。我已经有一个启动画面,目前它只是一个计时器。我已经阅读了有关如何为一个活动预加载的教程,但这意味着在活动之间进行更改时将会进一步加载。 我的应用程序中的主要步骤如下:
启动画面 - >活动1 - >活动2 - >活动3 - >活动4
活动2和3可以返回结果。我想在启动画面中加载我在活动1,2,3,4中需要的所有图像。它应该适合内存,但目前在打开时会导致延迟。
我相信我应该使用单身人士,在我的启动画面中加载它,然后调用启动画面继续进行活动1.
当谷歌搜索时,我找不到具体如何做到这一点。
非常感谢帮助!
由于
答案 0 :(得分:1)
单例模式非常简单
public class Singleton{
//variables
private Bitmap asset;
//getter method for asset
public Bitmap getAsset(){
return asset;
}
//Singleton Instance
private static Singleton instance = null;
//a private constructor
private Singleton(){}
//To get the singleton instance
public static Singleton getInstance(){
if(singleton == null){
instance = new Singleton();
}
return instance;
}
//some way of asynchronously loading assets - threads or AsyncTask
public void loadAssets(){
//do something to load assets asynchronously
}
}
使用它只是
Singleton.getInstance().loadAssets();
就是这样,为你的资产创建一些getter并像这样检索它们
Singleton.getInstance().getAsset();
答案 1 :(得分:0)
我建议实施内容提供程序或您自己的磁盘缓存机制,而不是使用Singleton方法,原因如下: