Como impedir que um serviço Android APENAS quando não há outras atividades em meu aplicativo em execução?

StackOverflow https://stackoverflow.com/questions/2440548

  •  19-09-2019
  •  | 
  •  

Pergunta

Existe uma maneira que eu possa testar se existem outras atividades em meu aplicativo ainda está vivo? Eu estou olhando para interromper um serviço em um método onDestroy, mas só quer fazer isso se não houver outras atividades de meu aplicativo ainda está vivo na pilha.

Eu tenho a chamada parar o serviço no método principal de actividade onDestroy (). Isso funciona perfeito, exceto que, se um usuário inicia meu aplicativo, em seguida, lança algumas atividades em meu aplicativo, em seguida, bate na tela inicial e relança meu aplicativo, eles vão subverter o meu pedido e a atividade principal será agora acima de outras atividades do meu aplicativo. A partir desse estado, se acertar o botão Voltar e 'desistir' da minha tela inicial que irá acionar o método onDestroy () e matar o serviço, embora há outras atividades abrir na pilha. Eu quero evitar isso interrompendo o serviço se eu tenho certeza que não há outras atividades da mina a céu aberto na pilha. Possível?

Foi útil?

Solução

Como posso lançar um serviço que vai continuar a executar, desde que nenhum dos meus atividades do aplicativo ainda estão no pilha, ainda ser interrompido quando nenhum permanecer?

Não use startService() e stopService(). Em vez disso, o uso bindService() e unbindService(), mesmo se você realmente não precisa a conexão ligada. O ligamento / desagrupar é contado referência. Se você chamar bindService() com a bandeira BIND_AUTO_CREATE, a primeira chamada bindService() irá iniciar o seu serviço. Então, quando todas as chamadas bindService() tiveram chamadas unbindService() correspondência, Android irá desligar automaticamente o serviço.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top