Jump to content
integer

[Resolvido] Correr aplicação interminável

Recommended Posts

integer

Boas,

Estou a desenvolver uma aplicação em Xamarin (Android) 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).

Para tal, já implementei serviços Android, que estão a fazer com que aplicação corra no dispositivo, sem parar e a executar as operações pretendidas.

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á tentei implementar a aplicação, como se de um GPS de trata-se (pois o Android considera estas, como de alta prioridade), mas sem sucesso! Acontecendo o mesmo, a quando da pouca memória do dispositivo.

Uma opção que pensei, era na criação de um segunda aplicação que verificava se esta primeira estava a correr. E caso não, iniciava a mesma, mas não é uma opção muito prática.

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 obter, com apenas uma aplicação?

Obrigado!

Share this post


Link to post
Share on other sites
integer

Boas,

Já implementei um serviço, mas não é o suficiente, para realizar o pretendido.

O serviço permite-me realizar todas as operações da minha aplicação, constantemente sem parar. Mas assim que o Android necessita de memória para iniciar uma nova aplicação, ele vai fechar as aplicações que estiverem a correr, de modo a iniciar novas.

Ou seja, a simples implementação de um serviço não resolve o problema da falta de memória do sistema Android.

Agradeço de qualquer das formas a sugestão. Se tiveres outra sugestão para o problema em questão agradeço.

Obrigado!

Share this post


Link to post
Share on other sites
M6

Já passei por isso num AIX. :P
A melhor opção é ires guardando estado para saberes qual o ponto de partida quando o serviço rearrancar novamente.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Knitter
Em 10/22/2016 às 12:58, HappyHippyHippo disse:

A "solução" está no link que o HappyHippyHippo colocou. Resumindo: Não há forma fiável de fazer isso, uma aplicação ou serviço será sempre terminada quando for necessário e é a plataforma que controla isso.

Usar o método startForeground() foi até agora que deu menos problemas mas sugeria que revisses esse requisito. Não é normal uma aplicação para dispositivos móveis ter que estar a executar continuamente durante tanto tempo, para não falar do gasto de bateria que é ter essa aplicação em foreground a consumir recursos. Tens mesmo de a ter a correr?

  • Vote 1

Share this post


Link to post
Share on other sites
integer

Boa tarde,

Têm razão após observar com maior detalhe o link disponibilizado, encontrei a solução para o problema.

Obrigado pela ajuda, na resolução do problema!

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.