Android заставляет приложения Кордовы перезапускать при использовании плагинов для камеры и Capture

Похоже, что существует общий сбой, который случается, когда приложения Cordova помещаются в фоновом режиме для использования плагинов Camera или Media Capture... служба активности Android, похоже, ищет память для освобождения и убивает деятельность Кордовы, так что, когда пользователь выполнит задачу захвата, приложение RESTARTS. Смотрите здесь SO-поток:

Камера PhoneGap перезапускает приложение

Это полный сбой UX и, скорее всего, не позволит мне освободить приложение Кордовы. Люди не любезно относятся к их потерянным фотографиям. Я использую Cordova 3.3 и несколько более старую версию плагина Capture в качестве обновления месяц назад, вызвав нарушения, и я откатился. Во всяком случае, похоже, что в какой-то момент кто-то создал пользовательский плагин, называемый камерой переднего плана, который никогда не позволял приложению перейти в состояние onStop, что устранило проблему:

https://code.google.com/p/foreground-camera-plugin/

К сожалению, этот пользовательский плагин ужасно устарел (Cordova 2.4). Можно ли изменить плагины родной Кордовы, чтобы предотвратить это ужасное поведение при перезагрузке? Есть ли планы на это? Или это возможно только благодаря созданию совершенно нового подключаемого модуля камеры с нуля, который не использует приложение собственной камеры?

Я отправил в список разработчиков Cordova, но ответа пока нет. Любые мысли о том, как лучше всего разрешить эту ситуацию, оценены.

Спасибо.

Ответ 2

Возможно, вы сможете использовать один и тот же плагин для камеры с вашим приложением. Постарайтесь максимально сократить потребление ОЗУ до начала плагина.

  • Удалить скрытые узлы DOM
  • Бесплатная оперативная память JavaScript путем удаления неиспользуемых объектов/экземпляров

У нас были проблемы на телефонах Android 2.3 с небольшой оперативной памятью. Освобождение всей возможной ОЗУ окончательно устранило проблему. Приложение было приостановлено, снимая фотографию, не убивая и не перезапуская.