integer Posted October 25, 2016 at 10:20 AM Report #599883 Posted October 25, 2016 at 10:20 AM (edited) Boas, Estou a desenvolver uma aplicação em Xamarin (iOS) e estou com um problema relativamente ao tempo de vida da aplicação. Necessito que a aplicação que estou a desenvolver, corra no dispositivo durante vários dias (por exemplo 3, 4 ou mais). O problema está, no facto do utilizador executar outras aplicações no dispositivo, fazendo com que quando o mesmo, fica com pouca memória, vai matar aplicações, que estão a correr, de modo a iniciar as novas. Já consegui solucionar esta problema no Android, através dos serviços, e das sugestões disponibilizadas pelos utilizadores deste Fórum, que podem acompanhar no link http://www.portugal-a-programar.pt/forums/topic/74340-correr-aplicação-interminável/ No entanto, deparei-me com a mesma situação no iOS. Dado que, o que implementei no Android, não pode ser aplicado no iOS. Isto porque, não possui serviços, os quais possa utilizar da mesma forma, que no Android. Como tal, já tentei implementar a aplicação, como se de um GPS de trata-se (pois o iOS considera estas, como de alta prioridade), ou de uma aplicação Áudio, mas sem sucesso! Acontecendo o mesmo, a quando da pouca memória do dispositivo. Já li em alguns tópicos que falam, que o que pretendo fazer, no iOS em colocar uma aplicação a correr interminavelmente, não é possível no iOS. Assim sendo, gostaria de saber se alguém possui alguma outra sugestão, que possa ser útil na resolução deste problema? Ou se o que pretendo fazer, não é possível de realizar no iOS? Obrigado! Edited October 25, 2016 at 10:21 AM by integer
Knitter Posted October 25, 2016 at 11:05 AM Report #599885 Posted October 25, 2016 at 11:05 AM Dou-te a mesma sugestão que te dei no outro tópico: revê o requisito. Não é um requisito normal e como utilizador de iOS não ia querer a minha aplicação a correr vários dias. Tens o problema de não existir API para isso, no caso de iOS e pela experiência que tenho, aplicações que usem API para correr com prioridade são mais escrutinadas e não passam na validação se o que estiverem a fazer não corresponder à prioridade que pedem (background mode). Podes criar aplicações que peçam execução em background, num dos modos suportados (vê a lista na documentação da Apple), os dois modos que podiam ser usados (de memória) devem ser o de voip e de external-accessory, mas se a tua aplicação não é uma aplicação de VOIP ou não comunica com dispositivos externos então a APP não vai ser aprovada. Além disso, a tua aplicação não fica sempre a correr, o que o iOS faz é ativar a aplicação e passar-lhe os dados para que ela comece a trabalhar em background. E o utilizador pode desactivar o processamento em background para a tua aplicação (se usares um dos modos controláveis)... e quando a bateria chegar aos 20% e o dispositivo entrar em modo de poupança nem esse tipo prioridades te safa. Há alguns truques, como usar notificações locais, mas isto depende do objetivo que tens e as notificações avisam o utilizador, sendo que a tua APP apenas executa quando ele clicar na notificação... para aplicações que não são distribuídas na APP Store é possível mascarar a APP como executando um dos modos de background prioritários mas se tentares submeter para a APP Store é muito fácil chumbar, ou passar numa primeira vez (difícil) e ser bloqueada num update. Resumindo: Não tens como fazer isso em iOS. 2 Report
integer Posted October 26, 2016 at 01:22 PM Author Report #599912 Posted October 26, 2016 at 01:22 PM Boas, Obrigado pela resposta, assim posso excluir esta possibilidade e tentar encontrar outra solução para o meu problema. Obrigado!
apocsantos Posted October 26, 2016 at 04:54 PM Report #599921 Posted October 26, 2016 at 04:54 PM Bom dia, em iOS isso é bastante complicado, por diversas razões sendo a principal a forma como o iOS funciona. Eventualmente detectar o estado suspended, e mover de novo a app para background, poderá ser um caminho. Mas é só uma ideia "peregrina". Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now