我的活动,可以叫它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();
}
}
什么是使用匕首2序列正确的做法?
浮现在脑海的第一件事情是让LogicClass
能够序列,并通过序列化程序反序列化的状态,创造load()
和save()
方法,前者是通过构造函数调用,而后者从外面被称为 - 中我的情况,MainActivity
在onStop()
方法。思考?