No Ice Cream Sandwich (ICS), o sistema operacional categoriza seu aplicativo e cada categoria tem seu próprio limite no qual o sistema operacional usa para determinar qual aplicativo fechar primeiro quando a memória ficar insuficiente.
Alguém já ficou aborrecido, digamos que abriu um cronômetro para executar em segundo plano para medir o tempo decorrido de alguma coisa, depois abriu mais alguns aplicativos e voltou ao cronômetro apenas para ver se ele foi redefinido ou fechado? Quero dizer, sério, é realmente irritantemente irritante.
Existe uma maneira de forçar um aplicativo a permanecer em execução em segundo plano, não importa o que seja, mesmo quando o sistema operacional ficar sem memória?
4.0-ice-cream-sandwich
ram
samsung-galaxy-s-3
supertonsky
fonte
fonte
Respostas:
A resposta aceita ficou incorreta ou desatualizada. O módulo "Configurações do aplicativo" para o aplicativo Xposed permite que você especifique por aplicativo para impedir que os aplicativos sejam mortos ou liberados:
http://repo.xposed.info/module/de.robv.android.xposed.installer
http://repo.xposed.info/module/de.robv.android.xposed.mods.appsettings
É claro que deve-se ter cuidado responsável ao jogar com aplicativos que alteram esse comportamento de baixo nível.
fonte
Resposta simples: não. O Android sempre usa o OOM (falta de memória) para liberar memória não utilizada. Você pode alterar as prioridades dos aplicativos (pelo menos até a reinicialização) com alguns gerenciadores de tarefas, mas mesmo assim, se a memória estiver fraca, os aplicativos em segundo plano começarão a ser mortos.
Pense neste cenário: você baixou um aplicativo mal codificado que é executado na inicialização, causa um estouro de buffer e sobrecarrega toda a sua memória. Normalmente, esse aplicativo é eliminado, mas se estiver definido para permanecer aberto, ele efetivamente bloqueia o telefone até a reinicialização e, depois disso, é iniciado novamente e novamente, etc.
Alguns cronômetros usam serviços com altas prioridades para evitar esse problema, mas se você iniciar aplicativos de alto desempenho e sobrecarregados, enquanto o cronômetro estiver em segundo plano, ele será morto.
fonte
Integer.MAX_VALUE
tempos. Por que você acha que as coisas são limitadas deInteger.MAX_VALUE
qualquer maneira?Não. No entanto, dois métodos para aliviar o problema vêm à mente, mas ambos só podem ser implementados pelo desenvolvedor: O primeiro é exibir uma notificação, o Android dará aos aplicativos que fazem isso uma prioridade mais alta do que outros. O segundo é salvar a hora de início para que, quando o timer for reiniciado, ele não seja redefinido.
fonte
onSaveInstanceState
eonRestoreInstanceState
para proteger o estado do aplicativo, incluindo as informações do temporizador. Não há necessidade de executar em primeiro plano. Mesmo que seja um alarme, você pode usarAlarmManager
para garantir que seja executado mais tarde. O único motivo pelo qual o Primeiro Plano deve ser usado é: 1. Você tem alguma atividade real em primeiro plano, como tocar música ou exibir um vídeo. 2. Você deseja manter uma conexão de dados aberta (por exemplo, IMAP IDLE (push)).1º método: - Se você criar o Sticky Thread no programa, sim, poderá mantê-lo à força na corrida. No entanto, lembre-se de que o usuário no modo de configuração avançada pode parar os aplicativos em execução em segundo plano. No entanto, se você escrever um thread fixo de uma maneira que ele inicie em qualquer evento fornecido, isso poderá ser alcançado.
2º método: se o usuário não estiver com root no Android e você quiser executar um aplicativo no segundo plano. use o script SL4 em segundo plano no aplicativo. use um script que faça verificações e programas em segundo plano e escreva o front end para mostrar outra coisa.
Por exemplo: na maioria dos mecanismos de jogos, isso é construído. Eles se conectam aos servidores, mesmo que o usuário tenha desligado o aplicativo. O motivo pelo qual o mecanismo cria vários scripts no telefone, que são verificados aleatoriamente em qualquer evento específico e que o TRIGGER é usado para executar seu aplicativo continuamente no segundo plano do primeiro plano.
*** Desculpe pelo corretor ortográfico do TYPO .. não disponível. Espero que você consiga o que pretendia obter.
fonte
Às vezes, existe uma opção para bloquear o aplicativo. Isso evita que matar ou parar desse aplicativo no telefone.
A opção de bloqueio não está disponível no próprio sistema operacional, o uso de alguns aplicativos de terceiros, como o GO Task Manager , etc., pode ajudar.
fonte