Я пытаюсь сохранить свой пользовательский объект как синглтон с Dagger 2.Dagger 2 REINIT одноточечно
@Provides
@Named("me")
@Singleton
User provideUser(PrefsUtil prefsUtil, UserDao userDao) {
int id = prefsUtil.getFromPrefs("me", 0);
if (id == 0){
return new User();
}
try {
return userDao.queryForId(id);
} catch (SQLException e) {
return new User();
}
}
Он отлично работает и впрыскивает свои классы с объектом User.
Однако после входа в систему и извлечения пользователя с сервера и сохранения его в том месте, в котором этот метод запрашивает вышеуказанный метод, он не вступает в силу, поскольку он является одиночным. Он предоставит мне нулевой пользовательский объект. Для его вступления в силу вы должны отказаться от приложения и повторно открыть его ...
Вопрос заключается в том, как обновить/повторно инициализировать объект пользователя, аннотированный с помощью @Name («me») после изменения фактических данных, чтобы он вводит мои другие классы в текущий пользовательский объект?
Вам необходимо перезагрузить модуль и снова инициализировать его. –