Android 我应该将改装API响应存储在数据库中吗?

Android 我应该将改装API响应存储在数据库中吗?,android,sqlite,memory,Android,Sqlite,Memory,我正在开发一个体育应用程序,它从一个API调用获取游戏数据,从另一个API调用获取团队徽标。每次我选择一个新的日期/周来加载这两个API时,都会再次调用。我可以用什么最好的方式来存储初始团队徽标调用的结果,这样在加载新游戏集时就不必再次调用了。我目前正在使用RXJava/Reformation进行API调用。我应该将Logo api调用的结果存储在SQL数据库中吗 下面是我的改装电话 public static Retrofit getMLBLogo(Context context) {

我正在开发一个体育应用程序,它从一个API调用获取游戏数据,从另一个API调用获取团队徽标。每次我选择一个新的日期/周来加载这两个API时,都会再次调用。我可以用什么最好的方式来存储初始团队徽标调用的结果,这样在加载新游戏集时就不必再次调用了。我目前正在使用RXJava/Reformation进行API调用。我应该将Logo api调用的结果存储在SQL数据库中吗

下面是我的改装电话

 public static Retrofit getMLBLogo(Context context) {


        retrofit2 = new retrofit2.Retrofit.Builder()
                .baseUrl(ConstMLBScoreBoard.LOGO_URL)
                .client(okHttpClient)
               .addCallAdapterFactory(RxJava2CallAdapterFactory.createWithScheduler(Schedulers.io()))
                .addConverterFactory(GsonConverterFactory.create())
                .build();



    return retrofit2;
}

如果您想这样做,可以使用Android架构组件的Room轻松生成代码

Room只需使用带有注释的类就可以自动为SQLite事务生成代码

然后,您可以使用Blob数据类型将图像保存到数据库中

Blob是一种字节数组数据类型

有关blob的更多信息,请参见此答案

然后,您可以这样编写代码

    fun getBitmap(name : String) : Bitmap {
    if(name in database...){
        return database.getBitmap(name)
    }else{
        return loadBitmapWithURL(url)
    }
}

谢谢你的快速回复!!我将在我的应用程序中实现Room。由于API返回图像的url,我应该可以将url字符串存储在数据库中,然后检索url并使用Picasso将其加载到ImageView中。正确吗?所以在本例中,我不需要将其存储为Blob数据类型是的。在您的情况下,它是url缓存而不是图像缓存。如果你的图像是静态的,你也可以使用磁盘缓存或sd卡缓存,使用其他库,如通用图像加载器,毕加索,glide。。。不客气!