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

时间:2019-02-06 14:39:37

标签: android sqlite memory

我正在开发一个体育应用程序,该应用程序从一个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;
}

1 个答案:

答案 0 :(得分:1)

如果要这样做,可以使用Android Architecture Component的 Room 轻松生成代码。

Room Document

Room仅使用带有注释的类即可自动为SQLite事务生成代码。

然后,您可以使用 Blob 数据类型

将图像保存到数据库

Blob是字节数组数据类型

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

How to store image to SQLite

然后,您可以像这样编码。

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