Активность, назовем это MainActivity
, есть класс, на который он полагается, назовем его LogicClass
. Этот класс имеет состояние - и это состояние должно быть сохранено.Dagger 2 & Serialization
Чтобы уточнить, общий поток будет выглядеть примерно так.
MainActivity
только что создано.LogicClass
создано с по умолчанию состояние.- Выполнены некоторые действия и изменения состояния
LogicClass
. MainActivity
остановлен/уничтожен и таким образомLogicClass
.MainActivity
воссозданLogicClass
создается с изменилось состояние.
Перед использованием инъекции зависимостей, что раньше произойдет была LogicClass
реализована Serializable
и MainActivity
создали LogicClass
экземпляр. MainActivity
был ответственен за его сериализацию, когда действие прекратилось и десериализовало его при создании этой активности.
До:
public class MainActivity extends AppCompatActivity {
private LogicClass mLogicClass;
@Override
protected void onCreate(Bundle savedInstanceState) {
// ..
mLogicClass = deserializeLogic();
if (mLogicClass == null) {
mLogicClass = new LogicClass();
}
}
@Override
protected void onStop() {
// ..
serializeLogic()
}
}
Сейчас я использую Dagger2 для DI, так что все выглядит следующим образом:
public class MainActivity extends AppCompatActivity {
@Inject LogicClass mLogicClass;
@Override
protected void onCreate(Bundle savedInstanceState) {
// ..
injectDependencies();
}
}
Что такое правильный подход для сериализации с помощью Dagger 2?
Первых вещей, которые пришли на ум, чтобы LogicClass
возможности сериализации и десериализации своего состояния с помощью утилиты сериализации, создавая load()
и save()
методы, бывших когда их называют конструктором, а последней называют снаружи - в мой случай, на MainActivity
в методе onStop()
. Мысли?