Как сохранить состояние для приложений Android, убитых в фоновом режиме в реагировать родной

Когда приложение Android отправляется в фоновый режим, оно может сохранять свое состояние экземпляра в случае, если оно будет уничтожено из-за нехватки памяти (см. Activity:onSaveInstanceState() и аргумент пакета для Activity:onCreate(Bundle saveInstanceState)).

Поведение Activity по умолчанию сохраняет состояние иерархии представлений, поэтому во многих случаях вам не нужно писать какой-либо код, и он "просто работает"[tm].

Теперь для реакции-родной это не так. Собственные приложения React размещаются в единой функции MainActivity, а их состояние содержится в интерпретаторе javascript в приложении.

Я создал образец репозитория с краткой документацией, как воспроизвести мою проблему здесь: https://github.com/einvalentin/react-native-state-test

Я хотел бы, чтобы реагирующий-родной подключался к механизму сериализации состояния собственных приложений Android, предоставляя разработчикам приложений возможности расширения, если они нуждаются в настраиваемой сериализации. В качестве альтернативы я мог бы видеть, как я расширяю MainActivity, чтобы пересылать события жизненного цикла на уровень Javascript и выполнять некоторую сериализацию настраиваемого состояния вручную там - но это кажется немного неуклюжим.

Есть ли очевидный способ, которым я упустил сохранение состояния в реактивном режиме, чтобы приложения, убитые в фоновом режиме, не перезапускались с нуля? Это всегда может происходить, например, на устройствах с низким объемом памяти, получающих телефонный звонок во время взаимодействия с вашим приложением.

Большое спасибо!

1 ответ

Решение

Если вы используете Redux для управления состоянием, вам, вероятно, следует использовать redux-persist. Если нет, у вас есть несколько вариантов:

Другие вопросы по тегам