2017-02-20 61 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