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