Предотвращение перезапуска приложений на основе холста в мобильном приложении Power Apps

Когда вы запускаете приложение на основе холста в мобильном приложении Power Apps, оно может перезапуститься по следующим причинам:

  • Приложение использует слишком много общей памяти.
  • Приложение использует слишком много памяти или мощностей обработки одновременно.
  • Приложение переводится в фоновый режим — либо когда ваше конкретное приложение использует встроенные средства управления (например, Добавление изображения или Сканер штрихкодов), либо когда мобильное приложение Power Apps переводится в фоновый режим пользователем.

Эти ограничения по памяти и мощностям обработки, которые особенно строги, когда мобильное приложение Power Apps работает в фоновом режиме, налагаются операционной системой (Android или iOS). Если приложение использует больше ресурсов, чем доступно на вашем устройстве, приложение будет сброшено. Это похоже на то, когда вы посещаете большую сложную веб-страницу, а веб-браузер приостанавливает работу страницы, если она потребляет слишком много энергии.

На устройствах Android этот перезапуск приложения может выглядеть как сбой, поскольку приложение полностью закрывается, а пользователь попадает на главный экран устройства.

Используйте эту статью, чтобы узнать, как предотвращать перезапуск приложений на основе холста в мобильных приложениях Power Apps.

Советы по предотвращению для конечных пользователей

Хотя самые значительные улучшения обычно вносятся разработчиками приложений, вот несколько советов, которые могут использовать конечные пользователи, чтобы уменьшить количество перезапусков приложений:

  • В мобильном приложении Power Apps на странице профиля пользователя выберите Очистить кэш, чтобы удалить сохраненные данные. Обратите внимание, что это следует делать только тогда, когда у конечного пользователя есть данные, так как при очистке кэша будут удалены все данные SaveData и кэши приложений.
  • На устройствах Android убедитесь, что мобильное приложение Power Apps имеет приоритет. Обратитесь к руководству вашего устройства, чтобы обеспечить работу приложения с помощью таких настроек, как оптимизация аккумулятора и конфигурация спящего режима приложения.
  • Закройте все работающие приложения, кроме мобильного приложения Power Apps, и удалите все ненужные данные с устройства, такие как неиспользуемые приложения или изображения.
  • Хотя это неудобно, рассмотрите возможность использования приложения более медленным образом — делайте небольшие паузы при переходах между экранами или после съемки, сохранения или загрузки данных.

Советы по предотвращению для разработчиков приложений

Самые глубокие улучшения по использованию памяти для уменьшения количества перезапусков приложений могут внести разработчики приложений. При разработке приложения не забудьте оптимизировать приложение для работы на самом слабом устройстве, которое будут использовать ваши конечные пользователи, и следуйте рекомендациям по потреблению ресурсов.

Примечание

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

Совет

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

Проблема Основная причина Устранение
Приложение перезагружается при загрузке определенного экрана. Если на определенном экране запускается слишком много формул одновременно, приложение может иметь слишком активно использовать мощности обработки, и операционная система перезапустит его. Ограничьте количество элементов управления на экране и количество формул, запускаемых при загрузке экрана, что может потребовать разделения экранов.

Избегайте зависимостей элементов управления между экранами.

Не позволяйте пользователю выполнять действия в моменты очень активной обработки. Например, когда загружается большая галерея с множеством фильтров и операций поиска.

Рассмотрите возможность использования именованных формул.

Рассмотрите возможность использования настройки приложения Отложенная загрузка.
Приложение перезапускается после многократных переходов между экранами. На экранах происходят утечки памяти, что приводит к увеличению используемого объема памяти по мере того, как пользователь перемещается по приложению. Включите параметр приложения Сохранять недавно посещенные экраны в памяти. Хотя это увеличивает общее использование памяти в краткосрочной перспективе, поскольку экран сохраняется в памяти, при навигации по нескольким экранам это предотвратит утечку памяти.
Приложение перезапускается при выполнении операций SaveData/LoadData или использовании подключений для передачи данных. SaveData и подключения для передачи данных увеличивают общий объем памяти, используемой приложением. SaveData также требует больших объемов обработки. Ввод больших объемов данных в приложение и сохранение этих данных для использования в автономном режиме (особенно мультимедийного содержимого и файлов) может привести к тому, что приложение превысит выделенную ему память и операционная система перезапустит его. Оптимизируйте объем данных, поступающих в приложение через подключения для передачи данных и сохраняемых с помощью SaveData.

По возможности сократите количество вызовов SaveData.

Включение параметра приложения Явный выбор столбца и отключение параметра Отношения "один ко многим" и "многие ко многим" в области записей также может помочь сократить объем данных, передаваемых в приложение.
Приложение перезапускается при использовании элемента управления Камера. Элемент управления Камера сохраняет снятое изображение в памяти. Это может привести к повышенному использованию памяти приложением, особенно если снятое изображение сохраняется в переменные или SaveData с использованием свойства OnStream. Не сохраняйте никакие изображения помимо самого последнего снятого.

Используйте Фото вместо Потока, чтобы захватывать изображения только тогда, когда пользователь выбирает камеру.

Если требуется использовать Поток, установите для свойства StreamRate как можно более высокое значение, чтобы уменьшить количество обновлений.
Приложение перезапускается при использовании элемента управления Добавление изображения. Элемент управления Добавление изображения сохраняет выбранный медиаконтент в памяти. Из-за размера медиаконтента это может привести к значительному расходованию памяти. Рассмотрите возможность изменения места захвата медиаконтента.

Попробуйте отключить свойство UseMobileCamera, чтобы пользователи могли выбирать медиафайлы только из галереи/медиатеки.

Рассмотрите возможность использования элемента управления attachment (как части формы), чтобы только выбирать файлы, а не захватывать их с помощью камеры.

Рассмотрите возможность переключения на элемент управление Камера.
Приложение перезапускается при использовании встроенных элементов управления, таких как Добавление изображения, Сканер штрихкодов/Reader, Просмотр в СР, Измерение камерой и других. Встроенные элементы управления могут переводить приложение в фоновый режим, где операционная система имеет более строгие ограничения на использование памяти перед перезапуском приложения. Перед использованием этих элементов управления убедитесь, что все операции, требующие интенсивного использования памяти и мощностей обработки, завершены. Например, отключите элемент управления Добавление изображения, пока не будут выполнены все операции SaveData.

Рассмотрите возможность переключения на другой элемент управления, например Камера вместо Добавление изображения.
Перезапуски приложений происходят на определенном наборе устройств. Устройства имеют разный объем памяти и доступных мощностей обработки. Например, старые устройства более склонны к перезапуску приложений из-за меньших доступных мощностей обработки.

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

Рассмотрите возможность приобретения устройств, отвечающих требованиям производительности вашего приложения.
Перезапуски приложений продолжаются. Использование памяти зависит от того, как создано приложение на основе холста. Следите за тем, чтобы ваше приложение соответствовало рекомендациям, которые помогают обеспечить производительность, сократить использование памяти и мощностей обработки. Оптимизируйте свое приложение, следуя рекомендациям ниже.

Рекомендации по созданию производительных приложений