我正在开发一个体育应用程序,该应用程序从一个API调用中获取游戏数据,而从另一个API调用中获取团队徽标。每当我选择一个新的日期/星期来加载两个API时,都会再次调用。我可以存储最初的Team Logo调用结果的最佳方法是什么,这样在加载新游戏集时我就不必再次调用它。我目前正在使用RXJava / Retrofit进行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;
}
答案 0 :(得分:1)
如果要这样做,可以使用Android Architecture Component的 Room 轻松生成代码。
Room仅使用带有注释的类即可自动为SQLite事务生成代码。
然后,您可以使用 Blob 数据类型
将图像保存到数据库Blob是字节数组数据类型
有关blob的更多信息,请参见此答案
然后,您可以像这样编码。
fun getBitmap(name : String) : Bitmap {
if(name in database...){
return database.getBitmap(name)
}else{
return loadBitmapWithURL(url)
}
}