2017-02-20 62 views
4

当Android应用程序发送到后台时,它可以保留其实例状态,以防因内存不足而死亡(请参阅Activity:onSaveInstanceState()和包参数为Activity:onCreate(Bundle savedInstanceState))。如何在反应本机中保留在后台死亡的android应用程序的状态

默认的“行为”行为是保存视图层次结构的状态,所以对于很多情况,您不必编写任何代码,它“只是起作用”[tm]。

现在反应原生这不是真的。 React原生应用程序托管在一个MainActivity中,其状态包含在应用程序中的JavaScript解释器中。

我创建了简短的文档样本库如何重现我的问题就在这里:https://github.com/einvalentin/react-native-state-test

我想反应本地挂接到原生的Android应用程序状态的序列化机制,同时提供应用程序开发人员挂钩,如果他们需要延长自定义序列化。或者,我可以看到自己扩展MainActivity以将生命周期事件转发到Javascript层,并在那里手动执行一些自定义状态序列化 - 但这感觉有点笨拙。

是否有一种显而易见的方式,我忽略了在react-native中保存状态,以便在后台死亡的应用程序不会从头开始重新启动?例如,在与您的应用程序进行互动时接收电话的低存储设备上可能会发生这种情况。

非常感谢!

回答

2

如果您使用Redux进行状态管理,则应该使用redux-persist。如果没有,你有几个不同的选择:

+0

谢谢!所以这基本上归结为我发送onSaveInstanceState()iOS状态保存和恢复挂钩以反应原生和坚持的REDX存储。 – Valentin

+0

如果您使用的是redux,只需使用redux-persist。希望能够接受的答案。 ;) – wmcbain