Como impedir que os aplicativos sejam mortos durante o sono?


11

Eu tenho um Droid 2. Eu tenho um jogo longo e com muitos recursos (almas espectrais) que gostaria de deixar em execução enquanto não estiver usando meu telefone. Se eu pressionar o botão "Página inicial" do Android para voltar à tela inicial e reiniciar imediatamente o jogo, será exatamente onde eu parei. O mesmo se eu pressionar o botão liga / desliga para dormir e ligar imediatamente o telefone, desbloquear e reiniciar o jogo.

Se eu deixar por algum tempo (algumas horas), quando eu voltar e iniciar o jogo, ele começará como se nunca estivesse em execução. Enquanto isso, o telefone não foi usado para nada, embora a sincronização esteja ativada.

Minha pergunta é dupla: como posso obter mais informações sobre quais aplicativos são mortos quando e por que e como posso configurá-lo para permitir que esse aplicativo continue em execução? Não preciso fazer nada em segundo plano, só quero que ainda esteja lá quando voltar.

Estou familiarizado com o conceito de limpar a memória do Android, pois é necessário e não precisa de um assassino de tarefas, mas quero que ele não mate ESTA tarefa, a menos que realmente saia dela.


Presumo que você não tem acesso ao código real?
Nanne

Correto, esses são aplicativos de código fechado adquiridos na loja de aplicativos.
Jason Viers

Respostas:


2

Tenho certeza de que não é uma opção no design padrão do Android. Eu nunca vi pessoalmente um aplicativo para essas coisas, porque a maioria das pessoas deseja que os programas sejam desligados para manter a velocidade do telefone. É o sistema Android que está desativando os programas não utilizados. O criador do aplicativo teria que projetar um serviço para mantê-lo em execução em segundo plano ou possível, como sempre em cálculo ou áudio, para que o sistema pense que o programa está fazendo algo. Isso consumiria sua bateria.


Enquanto sua primeira e terceira sentenças estão absolutamente corretas, as outras não.
Michael

2

Sugestão: use o Tasker para desativar o tempo limite da tela para seu aplicativo. Isso pode impedir que ele vá para o fundo.


Vou dar uma olhada e experimentar, obrigado! Vou anotar qualquer sucesso ou fracasso.
Jason Viers

Posso confirmar que alterar o tempo limite da tela no Tasker NÃO impedirá que o aplicativo seja morto. Obrigado pela sugestão, no entanto.
Jason Viers

1
Espere, isso não impedirá que a tela desligue? Assim desperdiçando bateria?
Michael

2

Para a primeira parte da sua pergunta;

como posso obter mais informações sobre quais aplicativos são mortos quando e por quê?

O SDK do Android possui um resumo rápido na memória do Android: http://developer.android.com/guide/topics/fundamentals.html

Por padrão, todo aplicativo é executado em seu próprio processo Linux. O Android inicia o processo quando qualquer componente do aplicativo precisa ser executado e o encerra quando não é mais necessário ou quando o sistema precisa recuperar a memória de outros aplicativos.

Tão eficazmente o Android pode ser resumido como matando programas quando determina que você não está usando (cliquei em sair do aplicativo) ou quando fica sem recursos. Por exemplo, se você tiver 512 MB de RAM e 10 grátis e iniciar um aplicativo que precise de 12, ele tentará determinar o aplicativo menos usado do qual ele pode obter 12.

Tende a fazer isso muito bem (pelo menos na minha experiência). Você pode voltar para casa do seu jogo e fazer algumas coisas, mas na terceira coisa, o jogo será despejado. Lembre-se de como os jogos são intensivos em recursos, por isso é provável que ele mate esse aplicativo mais cedo ou mais tarde.

Agora, o motivo pelo qual desaparece com o tempo é que você provavelmente tem processos de sincronização tentando iniciar e competir por recursos. As páginas de memória dos aplicativos foram acessadas com pouca frequência neste momento, por isso é um bom jogo para qualquer recuperação de memória que o sistema operacional julgue necessária.

Para sua segunda pergunta;

como posso configurá-lo para permitir que este aplicativo continue em execução?

Eu não uso um assassino de tarefas, mas tenho certeza de que os bons (parece que o ATK é o líder https://market.android.com/details?id=com.rechild.advancedtaskkiller&feature=search_result ) têm uma exceção Lista. Pode ser possível colocar na lista branca o jogo que você deseja e colocar na lista negra os outros processos.

Também não estou familiarizado com este jogo, por isso não tenho certeza de quais habilidades de salvamento automático e essas possuem. Espero ter ajudado.


1

Como obter mais informações sobre quais aplicativos foram mortos e por quê?

Você pode conectar seu telefone ao adb ; e, em seguida, ative o logcat ; salvando a saída no arquivo.
No arquivo de log, você terá toneladas de informações; pesquisando o nome do seu aplicativo; você pode descobrir quando é morto.

O que você pode fazer para impedir que ele seja interrompido pelo sistema Android?
Eu não sei; espero que a resposta correta funcione.
Contudo; Eu entraria em contato com o desenvolvedor e contaria o problema, pois ele deveria ter o tempo mais fácil para corrigi-lo


Eu estava prestes a mencionar a solução de logcat. Só quero acrescentar que você também procurou o ActivityManager (é o "assassino de tarefas" interno do Android). Você não pode impedir o Android de matar o aplicativo. A ideia do Android é que, se um processo do aplicativo for completamente eliminado, o aplicativo poderá restaurar seu estado anterior. Portanto, os desenvolvedores de aplicativos precisam garantir que você não inicie o jogo desde o início.
Fluxo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.