native?
Да, в Android. Но имеет смысл конкретные вопросы задавать.
Хотел спросить как там происходит работа с нативными модулями. У меня есть тяжелый процесс синхронизации локальной базы с бекендом. Хочу унести это в фон, но непонятно как на это отреагируем база. С ней в этот же момент может работать и UI. В начивной части работы с базой есть свой кеш. Будет ли он задействован или поднимется как бы новый инстанс? И как в этом случае работает бридж? События получают все потоки или как-то можно менеджить в какой поток улетает событие?
В контексте RN, бэкграунд таск - это сервис, который поднимает js движок и дергает js ф-цию предварительно зарегистрированную. Дальще js может работать как обычно, но: а. Компонентов не будет, рендеров не будет, т.е. React app отсутствует б. Если нативные модули вызванные в этот момент хотят getCurrentActivity, то они обломаются В остальном всё также... js как был однопоточный, так и остаётся (если бг таск работает в момент, когда приложение активно, то второй инстанс js движка не создаётся, js всегда в одном контексте работает). Ну а в нативе потоки, с этим тоже ничего не меняется... Несколько процессов на приложение вы не получите, это редко в андроид бывает и надо специально настраивать. Так что вся память всё равно общая.
Понятно. Значит отдельного потока нет. 😢 Спасибо огромное за консультацию. Будем тогда думать над своим нативным модулем для синка.
Обсуждают сегодня