Impedir que o aplicativo de tela seja reiniciado no aplicativo móvel do Power Apps
Quando você executa um aplicativo de tela no aplicativo móvel Power Apps, ele pode ser reiniciado pelos seguintes motivos:
- O aplicativo está usando muita memória total.
- O aplicativo está usando muita memória ou realizando o processamento de uma só vez.
- O aplicativo é movido para o segundo plano – quando seu aplicativo específico usa um controle nativo (como Adicionar imagem ou Scanner de código de barras) ou o aplicativo móvel do Power Apps é colocado em segundo plano pelo usuário.
Essa limitação de memória e processamento, que é especialmente rígida quando o aplicativo móvel do Power Apps é executado em segundo plano, é imposta pelo sistema operacional (Android ou iOS). Se o aplicativo usar mais recursos do que os disponíveis em seu dispositivo, o aplicativo será redefinido. Isso é semelhante a visitar uma página da Web grande e complexa e o navegador da Web suspender a página se ela estiver consumindo muita energia.
Em dispositivos Android, essa reinicialização do aplicativo pode parecer uma falha porque o aplicativo é fechado e o usuário é levado para a tela inicial do dispositivo.
Use esse artigo para saber como impedir que o aplicativo de tela seja reiniciado no Power Apps para dispositivos móveis.
Dicas de prevenção para usuários finais
Embora as maiores melhorias geralmente sejam feitas pelos criadores de aplicativos, aqui estão algumas dicas que os usuários finais podem usar para diminuir a ocorrência de reinicializações de aplicativos:
- No aplicativo móvel do Power Apps, na página de perfil do usuário, selecione Limpar cache para remover dados salvos. Observe que isso só deve ser feito quando o usuário final tiver dados, pois limpar o cache removerá todos os caches do aplicativo ou SaveData.
- Em dispositivos Android, certifique-se de que o aplicativo móvel Power Apps seja priorizado. Consulte o manual do seu dispositivo para manter o aplicativo em execução nas configurações, como otimização da bateria e configuração de suspensão do aplicativo.
- Feche todos os aplicativos em execução, exceto o aplicativo móvel do Power Apps, e remova todos os dados desnecessários do dispositivo, como aplicativos ou imagens não utilizados.
- Embora seja complicado, considere usar o aplicativo mais de forma mais lenta – faça uma pequena pausa entre as navegações na tela ou depois de tirar fotos ou salvar ou carregar dados.
Dicas de prevenção para criadores de aplicativo
Os melhores aperfeiçoamentos na memória para diminuir as reinicializações de aplicativos podem ser feitas pelos fabricantes de aplicativos. Ao criar um aplicativo, lembre-se de otimizar o aplicativo para ser executado no dispositivo de especificação mais baixa que seus usuários finais usarão e siga a melhor prática em relação ao uso do recurso.
Observação
Como as reinicializações do aplicativo são feitas pelo sistema operacional que restringe a quantidade de memória e o volume de processamento que um aplicativo pode fazer, talvez seja necessário realizar uma combinação das mitigações sugeridas abaixo para minimizar as reinicializações do aplicativo. Quanto mais memória e processamento puderem ser reduzidos, no uso total e no uso de uma só vez, menor será a probabilidade de uma reinicialização do aplicativo.
Dica
Você pode conectar uma sessão de aplicativo móvel ao Monitor para ver onde seu aplicativo está realizando o processamento pesado ou operações com uso intenso de memória. O Monitor é uma ferramenta que oferece aos criadores uma visão profunda do que um aplicativo faz e como ele faz, registrando em log todas as principais atividades que ocorrem no aplicativo enquanto ele é executado.
Problema | Causa Raiz | Mitigação |
---|---|---|
O aplicativo reinicia ao carregar uma tela específica. | Se uma tela específica estiver executando muitas fórmulas ao mesmo tempo, o aplicativo pode estar realizando muito processamento e ser reiniciado pelo sistema operacional. | Limite o número de controles em uma tela e o número de fórmulas sendo executadas quando a tela for carregada, o que pode exigir a divisão de telas. Evite a dependência de controles entre telas. Impeça que o usuário execute uma ação durante momentos de alto processamento. Por exemplo, quando uma galeria grande com vários filtros e pesquisas estiver sendo carregada. Considere o uso de fórmulas indicadas. Considere usar a configuração do aplicativo Carga Atrasada. |
O aplicativo é reiniciado após navegações em várias telas. | Há vazamentos de memória acontecendo nas telas, resultando no aumento do uso da memória conforme o usuário navega pelo aplicativo. | Ative a configuração do aplicativo Manter as telas visitadas recentemente na memória. Embora isso aumente o uso total da memória em curto prazo, pois a tela é preservada na memória, nas navegações em várias tela, esse procedimento evitará vazamentos de memória. |
O aplicativo reinicia ao realizar SaveData/LoadData ou ao usar conexões de dados. | SaveData e conexões de dados aumentam o uso de memória total pelo aplicativo. SaveData também é uma operação de processamento pesado. Trazer grandes quantidades de dados para o aplicativo e salvá-los para uso offline (especialmente o conteúdo de mídia e arquivos) pode fazer o aplicativo ir além da memória alocada, o que faz o sistema operacional reiniciar o aplicativo. | Otimize a quantidade de dados trazidos para o aplicativo por meio de conexões de dados e salvos por meio de SaveData. Reduza o número de chamadas de SaveData sempre que possível. Ativando a configuração de aplicativo Seleção explícita de coluna e desativando a configuração de aplicativo Relações de um para muitos e de muitos para muitos pode ajudar a reduzir os dados que estão sendo trazidos para o aplicativo. |
O aplicativo é reiniciado quando usa-se o controle Câmera. | O controle Câmera salva a imagem capturada na memória. Isso pode aumentar o uso de memória do aplicativo, especialmente se a imagem capturada for salva em variáveis ou SaveData usando-se a propriedade OnStream. | Não salve nenhuma imagem além da capturada mais recentemente. Use Foto em vez de Stream para capturar imagens apenas quando o usuário tocar na câmera. Se precisar usar Stream, defina a propriedade StreamRate o mais alto possível para reduzir o número de atualizações. |
O aplicativo é reiniciado quando usa-se o controle Adicionar imagem. | O controle Adicionar imagem salva o conteúdo de mídia selecionado na memória. Devido ao tamanho do conteúdo de mídia, isso pode resultar em pressão significativa na memória. | Considere alterar o local em que o conteúdo de mídia é capturado. Considere desativar a propriedade UseMobileCamera para que os usuários possam selecionar apenas mídia da galeria/biblioteca de fotos. Considere usar o controle attachment (como parte de um formulário) apenas para selecionar arquivos em vez de capturá-los usando a câmera. Considere mudar para o controle Câmera. |
O aplicativo reinicia ao usar controles nativos como Adicionar imagem, Scanner/Leitor de Códigos de Barras, Exibir em MR, Câmera de medição e outros. | Os controles nativos podem colocar o aplicativo em segundo plano, onde o sistema operacional tem limitações mais rígidas de memória antes de reiniciar o aplicativo. | Certifique-se de que todas as operações intensas de memória e processamento sejam concluídas antes de usar esses controles. Por exemplo, desative o controle Adicionar imagem até que qualquer operação SaveData seja concluída. Considere mudar para um controle diferente como Câmera em vez de Adicionar imagem. |
As reinicializações do aplicativo acontecem para um subconjunto de dispositivos. | Os dispositivos têm diferentes quantidades de memória e processamento disponíveis. Por exemplo, dispositivos mais antigos são mais propensos a reinicializações de aplicativos devido ao menor espaço para processamento disponível. Ter outros aplicativos em execução também pode reduzir a quantidade de espaço para processamento disponível. Da mesma forma, outros aplicativos instalados e muitas fotos/mídia salvas no dispositivo podem ocupar memória, reduzindo o que está disponível para o aplicativo. |
Encaminhe seus usuários para as dicas listadas acima em nossa seção Dicas de prevenção para usuários finais. Considere investir em dispositivos que atendam às necessidades de desempenho do aplicativo. |
As reinicializações de aplicativos continuam acontecendo. | O uso de memória é afetado pela forma como o aplicativo de tela é criado. Certifique-se de que seu aplicativo segue as melhores práticas que podem ajudar a garantir o desempenho, reduzir o uso de memória e o volume de processamento. | Otimize seu aplicativo seguindo as melhores práticas abaixo. |
Melhores práticas para criar aplicativos de alto desempenho
- Criar aplicativos grandes e complexos
- Problemas comuns de desempenho e resoluções para aplicativos de tela
- Dicas e práticas recomendadas para melhorar o desempenho de aplicativos de tela
- Padrões e diretrizes de codificação de aplicativos de tela do Power Apps
- Whitepaper Padrões e diretrizes de codificação de aplicativos de tela do Power Apps (Certifique-se de revisar a seção intitulada Otimização para desempenho.)