Я следую руководству по Android для использования LiveData: https://developer.android.com/jetpack/docs/guide, Я могу совершать вызовы и получать список объектов обратно, но я не понимаю, как я могу кэшировать этот список объектов, на примере, который я Я не совсем уверен, как определяется класс UserCache, а также я не знаю, как добавить время кэширования.
Не могли бы вы указать мне, как это сделать, пожалуйста?
Это класс:
@Singleton
public class UserRepository {
private Webservice webservice;
private UserCache userCache;
public LiveData<User> getUser(String userId) {
LiveData<User> cached = userCache.get(userId);
if (cached != null) {
return cached;
}
final MutableLiveData<User> data = new MutableLiveData<>();
userCache.put(userId, data);
// this is still suboptimal but better than before.
// a complete implementation must also handle the error cases.
webservice.getUser(userId).enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
data.setValue(response.body());
}
});
return data;
}
}
Спасибо