如何在反应原生的后台持久杀死Android应用程序状态

时间:2017-02-20 17:21:36

标签: android react-native react-redux

当Android应用程序发送到后台时,它可以保留其实例状态,以防因内存不足而被杀死(请参阅Activity:onSaveInstanceState()Activity:onCreate(Bundle savedInstanceState)的bundle参数)。

默认的Activity行为是保存视图层次结构的状态,所以在很多情况下你不必编写任何代码,它“只能工作”[tm]。

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

我创建了一个包含简短文档的示例存储库,如何在此处重现我的问题:https://github.com/einvalentin/react-native-state-test

我希望react-native挂钩到本机android app状态序列化机制,同时为应用程序开发人员提供钩子,以便在需要自定义序列化时进行扩展。或者,我可以看到自己扩展MainActivity以将生命周期事件转发到Javascript层并在那里手动执行一些自定义状态序列化 - 但这感觉有点笨拙。

有没有一种明显的方法我忽略了将状态保存在react-native中,以便在后台杀死的应用程序不会从头开始重启?例如,在与您的应用程序交互时接收电话的低内存设备上总会发生这种情况。

非常感谢!

1 个答案:

答案 0 :(得分:8)

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