Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   CameraRoll закрывает приложение (http://www.flasher.ru/forum/showthread.php?t=209124)

Probity 14.10.2014 15:54

CameraRoll закрывает приложение
 
Столкнулся с неприятным багом - на некоторых Android-смартфонах каждый второй раз вместо добавления картинки через CameraRoll, приложение крашится и перезапускается сразу после выбора картинки.

Нашел этот баг на сайте Adobe: https://bugbase.adobe.com/index.cfm?...bug&id=3134550

Есть ли какие-нибудь пути решения этой проблемы? Как вариант, пробовал сделать FileReference вместо CameraRoll - работает отлично, но тогда запускается неприятная панель поиска файла вместо галереи. Также пробовал сохранить полученный адрес картинки через SharedObject и открывать после перезапуска, но приложение падает сразу и ничего не успевает сохранить.

Добавлено через 4 часа 18 минут
Как я понял этот баг, устройства, у которых меньше 100 мб свободной памяти закрывают Air-приложение после того, как оно сворачивается при открытии фотогалереи (Camera Roll) для выбора картинки. Можно ли каким-нибудь образом запретить закрывать свернутое Air-приложение?

Probity 18.01.2015 04:19

Так и не ответили... Видать, флеш действительно умирает.

Astraport 18.01.2015 10:12

Если юзаете stage3d, то вероятно это потеря контекста. Нужно его сразу восстанавливать.

Probity 18.02.2015 06:06

Astraport, Stage3D не используется.

В-общем, как я понял, проблема упирается в то, что Air-приложение закрывается в свернутом состоянии. Существует ли возможность запретить Android "убить" свернутое приложение?

Hauts 18.02.2015 08:44

Probity
Код AS3:

NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;
NativeApplication.nativeApplication.executeInBackground = true;


Probity 29.03.2015 16:31

Цитата:

Сообщение от Hauts (Сообщение 1179121)
Код AS3:

NativeApplication.nativeApplication.executeInBackground = true;


Цитата:

This property is supported only on AIR iOS.
Речь идет об Android-устройствах с низким объемом оперативной памяти. На них всегда приложения работают в свернутом режиме без каких-либо ограничений, но могут быть закрыты системой.

Проблема в том, что приложение может быть закрыто операционной системой, когда пользователь выбирает CameraRoll или CameraUI, сворачивая приложение для выбора картинки в галерее или камере. Задача - получить выбранную картинку. Если приложение загружается заново, оно не может обработать данные. Есть два пути решения, но оба не работают:
1. Запретить закрывать приложение.
2. Получить выбранную картинку заново загруженным приложением.

Прочитал про то, что Starling умеет сохранять текущее состояние приложения через
Код AS3:

Starling.handleLostContext = true;

Может ли подключение Starling решить эту проблему?

Probity 02.04.2015 16:22

Оказалось, есть люди, которые написали специальное ANE расширение ImagePicker, которое исправляет ошибки взаимодействия Air и CameraRoll/CameraUI. Неожиданные вылеты исчезли, хотя спустя время на смартфонах с небольшим количеством памяти может появиться сообщение "приложение остановлено", но в целом намного стабильнее, чем работа с галереей и камерой напрямую. Также расширение решает проблему Picasa и других сторонних сервисов, вызывавших перезагрузку приложения.

Ссылка на скачивание для тех, кто столкнется с подобной проблемой: https://github.com/jsaade/ANE-ImagePicker (нужно добавить в проект .as3 и .ane файл). В инструкции плохо понятно, что после загрузки картинки функция получает 3 параметра: string (сообщение об успешности), bitmapData и byteArray картинки.


Часовой пояс GMT +4, время: 23:22.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.