Impedir reinícios da aplicação de tela na aplicação móvel Power Apps

Quando executar uma aplicação de tela na aplicação Power Apps Mobile, esta poderá ser reiniciada pelas seguintes razões:

  • A aplicação está a utilizar demasiada memória total.
  • A aplicação está a utilizar demasiada memória ou processamento de cada vez.
  • A aplicação é movida para o fundo — quando a sua aplicação específica utiliza um controlo nativo (como Adicionar imagem ou Scanner de códigos de barras) ou a aplicação móvel do Power Apps é colocada no fundo pelo utilizador.

Estas limitações de memória e processamento, que são especialmente estritas quando a aplicação móvel do Power Apps é executada em fundo, são impostas pelo sistema operativo (Android ou iOS). Se a aplicação usar mais recursos do que os disponíveis no seus dispositivo, a aplicação irá ser reposta. Este comportamento é semelhante a quando visita uma página Web grande e complexa e o browser Web suspende a página se estiver a consumir demasiada energia.

Em dispositivos Android, este reinício da aplicação pode parecer-se co, uma falha, uma vez que a aplicação é completamente encerrada e o utilizador é levado para o ecrã principal do dispositivo.

Utilize este artigo para saber como impedir reinícios da aplicação de tela no Power Apps Mobile.

Sugestões de prevenção para utilizadores finais

Apesar de os maiores melhoramentos normalmente serem feitos pelos criadores das aplicações, eis algumas sugestões que os utilizadores finais podem utilizar para diminuir a ocorrência de reiniciações da aplicação:

  • Na aplicação móvel do Power Apps, na página de perfil de utilizador, selecione Limpar cache para remover dados guardados. Note que isto só deve ser feito quando o utilizador final tiver dados, uma vez que a limpeza da cache removerá quaisquer caches SaveData ou de aplicações.
  • Nos dispositivos Android, certifique-se de que a aplicação Power Apps Mobile tem prioridade. Consulte o manual do seu dispositivo para manter a aplicação em execução através de definições como a otimização da bateria e a configuração de suspensão de aplicação.
  • Feche quaisquer aplicações em execução, exceto a aplicação móvel do Power Apps e remova os dados não necessários do dispositivo, tais como aplicações ou imagens não utilizadas.
  • Embora seja pesado, considere utilizar a aplicação mais lenta — coloque em pausa um pouco entre navegação de ecrã ou depois de tirar fotografias ou de guardar ou carregar dados.

Sugestões de prevenção para criadores de aplicações

Os maiores melhoramentos à memória para diminuir os reinícios da aplicação podem ser feitos pelos criadores das aplicações. Quando criar uma aplicação, lembre-se de otimizar a aplicação para executar no dispositivo de especificação mais baixa que os utilizadores finais utilizarão e siga as melhores práticas relativas à utilização de recursos.

Nota

Uma vez que os reinícios da aplicação são causados pelo sistema operativo, restringir a quantidade de memória e o processamento que uma aplicação pode fazer, poderá ser necessário uma combinação das mitigações sugeridas abaixo para minimizar reinícios da aplicação. Quanto mais memória e processamento puderem ser reduzidos, no total e de cada vez, menor será a probabilidade de uma aplicação reiniciar.

Dica

Pode ligar uma sessão da aplicação móvel ao Monitor para ver onde a sua aplicação está a efetuar operações de processamento pesado ou de memória intensiva. O Monitor é uma ferramenta que oferece aos criadores uma vista aprofundada do que uma aplicação faz e de como o faz ao registar todas as atividades-chave que ocorrem na aplicação à medida que é executada.

Problema Causa Raiz Mitigação
A aplicação é reiniciada quando carrega um ecrã específico. Se um ecrã específico estiver a executar demasiadas fórmulas de uma só vez, a aplicação pode ter demasiado processamento e ser reiniciada pelo sistema operativo. Limite o número de controlos num ecrã e o número de fórmulas que estão a ser executadas quando o ecrã é carregado, o que poderá requerer a divisão de ecrãs.

Evitar a dependência de controlos entre ecrãs.

Impeça que o utilizador tome medidas durante momentos de processamento elevado. Por exemplo, quando uma galeria grande com vários filtros e procuras está a carregar.

Considere utilizar fórmulas nomeadas.

Considere utilizar a definição da aplicação Carregamento atrasado.
A aplicação reinicia após várias navegações de ecrã. Ocorrem fugas de memória nos ecrãs, resultando na acumulação de utilização da memória à medida que o utilizador navega pela aplicação. Ative a definição da aplicação Manter em memória ecrãs visitados recentemente. Embora isto aumente a utilização da memória total a curto prazo, uma vez que o ecrã é preservado na memória, entre várias navegações de ecrã, impedirá as fugas de memória.
A aplicação reinicia quando efetua SaveData/LoadData ou utiliza ligações de dados. SaveData e ligações de dados ambos aumentam a memória total que está a ser utilizada pela aplicação. SaveData também é uma operação de processamento pesada. Trazer grandes quantidades de dados para a aplicação e guardar esses dados para utilização offline (especialmente o conteúdo multimédia e ficheiros) pode fazer com que a aplicação ultrapasse a memória alocada, fazendo com que o sistema operativo reinicie a aplicação. Otimize a quantidade de dados trazidos para a aplicação através de ligações de dados e guardados através de SaveData.

Reduza o número de chamadas a SaveData sempre que possível.

Ativar a definição da aplicação Seleção explícita de colunas e desativar a definição da aplicação Registar relações um para muitos e muitos para muitos de âmbito também pode ajudar a reduzir os dados que são trazidos para a aplicação.
A aplicação é reiniciada quando utiliza controlo Câmara. O controlo Câmara guarda a imagem capturada na memória. Isto pode aumentar a utilização da memória da aplicação, especialmente se a imagem capturada for guardada em variáveis ou SaveData utilizando a propriedade OnStream. Não guarde imagens para além da imagem mais recentemente capturada.

Utilize Photo, em vez Stream, para capturar imagens apenas quando o utilizador toca na câmara.

Se precisar de utilizar o Stream, defina a propriedade StreamRate tão alto quanto possível de forma a reduzir o número de atualizações.
A aplicação é reiniciada quando utiliza controlo Adicionar imagem. O controlo Adicionar imagem guarda o conteúdo multimédia selecionado na memória. Devido ao tamanho do conteúdo multimédia, isto pode resultar em pressão significativa na memória. Considere alterar o local onde o conteúdo multimédia é capturado.

Considere desativar a propriedade UseMobileCamera para que os utilizadores só possam selecionar multimédia a partir da galeria/biblioteca de fotografias.

Considere utilizar o controlo Anexos (como parte de um formulário) para selecionar só ficheiros, em vez de os capturar utilizando a câmara.

Considere mudar para o controlo Câmara.
A aplicação é reiniciada quando utiliza controlos como Adicionar imagem, Scanner/Leitor de códigos de barras, Ver no MR, Câmara de medição, entre outros. Os controlos nativos podem colocar a aplicação em fundo, onde o sistema operativo tem limitações mais estritas na memória, antes de reiniciar a aplicação. Certifique-se de que todas as operações de processamento e de memória intensivas estão concluídas antes de utilizar estes controlos. Por exemplo, desative o controlo Adicionar imagem até que quaisquer operações SaveData sejam concluídas.

Considere mudar para outro controlo, como Câmara, em vez de Adicionar imagem.
As reiniciações da aplicação ocorrem para um subconjunto de dispositivos. Os dispositivos têm quantidades diferentes de memória e processamento disponíveis. Por exemplo, os dispositivos mais antigos têm uma maior tendência para reinícios da aplicação devido ao seu processamento disponível mais baixo.

Ter outras aplicações em execução também pode reduzir a quantidade de processamento disponível. Do mesmo modo, outras aplicações instaladas e muitas das fotografias/multimédia guardados no dispositivo podem ocupar memória, reduzindo o que está disponível para a aplicação.
Consulte os seus utilizadores para as sugestões listadas acima, na nossa secção Sugestões de prevenção para utilizadores finais.

Considere investir em dispositivos que cumprem com as necessidades de desempenho da sua aplicação.
Os reinícios da aplicação continuam a acontecer. A utilização da memória é afetada pela forma como a aplicação de tela é criada. Certifique-se de que a aplicação segue as melhores práticas pode ajudar a garantir o desempenho, a reduzir a utilização da memória e processamento. Otimize a aplicação seguindo as melhores práticas abaixo.

Melhores práticas para criar aplicações com bom desempenho