Android 全局访问扩展文件

Android 全局访问扩展文件,android,apk-expansion-files,Android,Apk Expansion Files,我需要在很多活动中访问扩展文件中的很多图像 执行以下操作: expansionFile = APKExpansionSupport.getAPKExpansionZipFile(context, 8, -1); fileStream = expansionFile.getInputStream("drawables/drawable-hdpi/" + image); Drawable drawable = Drawable.createFromStream(fileStream, null);

我需要在很多活动中访问扩展文件中的很多图像

执行以下操作:

expansionFile = APKExpansionSupport.getAPKExpansionZipFile(context, 8, -1);
fileStream = expansionFile.getInputStream("drawables/drawable-hdpi/" + image);
Drawable drawable = Drawable.createFromStream(fileStream, null);
因为每个活动都非常慢,在某些活动中,我需要同时加载4个或更多图像


那么,如果我创建一个新类来抽象每个活动中的代码,您会怎么想?

因此我创建了一个类ExpansionFileRetriever,用于检索扩展文件:

公共类ExpansionFileRetriever{

private static ExpansionFileRetriever instance;

public static ExpansionFileRetriever get() {
   if(instance == null) instance = getSync();
   return instance;
}

private static synchronized ExpansionFileRetriever getSync() {
   if(instance == null) instance = new ExpansionFileRetriever();
   return instance;
}

public ExpansionFileRetriever(){
   // here you can directly access the Application context calling
   Context c = App.get();
   try {
        expansionFile = APKExpansionSupport.getAPKExpansionZipFile(c, 20, -1);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

ZipResourceFile expansionFile;

public Drawable getDrawable(String path, String resource) {
    InputStream fileStream = null;
    String file = path + resource;
    try {
        fileStream = expansionFile.getInputStream(file);
        Drawable drawable = Drawable.createFromStream(fileStream, null);
        return drawable;
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
    }   
}
}

每当我需要访问扩展文件的文件时

我只是用

ExpansionFileRetriever expFile = ExpansionFileRetriever.get();
要获得,比如说一个可绘制的

expFile.getDrawable(path, name)

此方法需要传递什么参数expFile.getDrawable(路径、名称)