Tutorial de serviços Android: como executar um aplicativo em segundo plano?



Este Tutorial de serviços do Android ajuda você a entender como realizar operações em segundo plano, como tocar música, ele não tem nenhuma IU anexada

Frequentemente usando vários aplicativos em seu smartphone, você pode querer alternar de um aplicativo para outro, mas também garantir que todos os seus aplicativos permaneçam ativos em segundo plano. Estes são apenas os serviços oferecidos por . Portanto, este artigo no Tutorial de serviços do Android ajudará você a entender como trabalhar com os serviços.

Abordarei os seguintes tópicos:





O que são serviços Android?

O serviço é basicamente um processo. Serviço Android é um componente executado em segundo plano para realizaroperações de longa duração sem interagir com o usuário e funciona mesmo se o aplicativo for destruído.Outro componente do aplicativo pode iniciar um serviço e ele continua a ser executado em segundo plano, mesmo se você alternar para outro aplicativo.

Além disso, um componente pode se vincular a um serviço para interagir com ele e também realizar a comunicação entre processos.



Nota: O android.app.Service é uma subclasse da classe ContextWrapper e o serviço Android não é um encadeamento ou processo separado.

Android- Ciclo de vida dos serviços

O ciclo de vida dos serviços Android pode ter duas formas de serviços. O ciclo de vida de um serviço segue dois caminhos diferentes, a saber:

  1. Começado
  2. Limite

Começado



Um serviço é iniciado quando um componente de aplicativo chama Começar serviço () método. Uma vez iniciado, um serviço pode ser executado em segundo plano indefinidamente, mesmo se o componente responsável pelo início for destruído. Ele é interrompido usando o parar serviço () método. O serviço também pode parar chamando o stopSelf () método.

Limite

Um serviço é vinculado quando um componente do aplicativo se vincula a ele chamando bindService () . O serviço vinculado oferece uma interface cliente-servidor que permite aos componentes interagir com o serviço, enviar solicitações e obter resultados. Ele processa através da comunicação entre processos (IPC). O cliente pode desvincular o serviço chamando o unbindService () método.

Ciclo de vida do serviço Android - Tutorial de serviços Android - Edureka

Passando para a próxima seção deste artigo sobre os serviços do Android, vamos discutir os diferentesmétodos sob a classe de serviço.

Tutorial de serviços Android: métodos

Existem alguns métodos com os quais você pode facilmente executar operações em qualquer aplicativo. Alguns deles são:

MétodoDescrição
onStartCommand ()

Este método é chamado quando qualquer outro componente, como uma atividade, solicita que o serviço seja iniciado, chamando Começar serviço () .

É sua responsabilidade interromper o serviço quando o trabalho correspondente for feito usando stopSelf () ou parar serviço () métodos.

desligar ()

Chama este método quando outro componente deseja se vincular ao serviço chamando bindService () .

Para implementar isso, você deve fornecer uma interface que os clientes usem para se comunicarem com o serviço. Retorna um IBinder objeto. Se você não quiser permitir vinculação, retorne nulo .

onUnbind ()

O sistema chama este método quando todos os clientes são desconectados de uma interface específica publicada pelo serviço.

onRebind ()

Chama este método quando novos clientes são conectados ao serviço, após terem sido previamente notificados de que todos estão desconectados em onUnbind (Intent) .

onCreate ()

O sistema chama este método quando o serviço é criado pela primeira vez usando onStartCommand () ou desligar () . É necessário realizar uma configuração única.

onDestroy ()

Este método é chamado quando o serviço não é mais usado e está sendo destruído. Seu serviço deve implementar isso para limpar quaisquer recursos, como threads, ouvintes registrados, receptores, etc.

Código de esqueleto

public class MainActivity estende Activity {private TextView textView private BroadcastReceiver receiver = new BroadcastReceiver () {@Override public void onReceive (Contexto de contexto, Intent intent) {Bundle bundle = intent.getExtras () if (bundle! = null) {String string = bundle.getString (DownloadService.FILEPATH) int resultCode = bundle.getInt (DownloadService.RESULT) if (resultCode == RESULT_OK) {Toast.makeText (MainActivity.this, 'Download concluído. Download URI:' + string, Toast.LENGTH_LONG) .show () textView.setText ('Download concluído')} else {Toast.makeText (MainActivity.this, 'Download falhou', Toast.LENGTH_LONG) .show () textView.setText ('Download falhou')}}}} @Override public void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) textView = (TextView) findViewById (R.id.status)} @Override protected void onResume () {super.onResume ( ) registerReceiver (receptor, novo IntentFilter (DownloadService.NOTIFICATION))} @Override protected void onPause () {super.onPause () unregisterReceiver (receiver)} public void onClick (Visualização de visualização) {Intent intent = new Intent (this, DownloadService.class) // adicionar informações para o serviço que arquivo baixar e onde store intent.putExtra (DownloadService.FILENAME, 'index.html') intent.putExtra (DownloadService.URL, 'www.edureka.co') startService (intent) textView.setText ('Service started')}}

Neste exemplo, você pode ver os métodos como onCreate () , Resumindo () , onPause () . Esses métodos formam a estrutura dos Serviços no Android.

Agora, chegando à parte prática deste Tutorial de serviços Android, vamos vercomo criar um serviço e tratá-lo.

Demo

Vamos ver como tocar música de fundo. Para fazer isso, vou usar Andriod Studio .

Passo 1

Crie um novo projeto vazio. Nomeie seu projeto e clique na pasta Java e clique no Atividade principal . Primeiro, adicione Reprodutor de mídia para que você possa importar os detalhes do player como iniciar, definir o loop e assim por diante.

package com.example.mydemoapplication import androidx.appcompat.app.AppCompatActivity public class MainActivity estende AppCompatActivity {@Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) setContentView (R.layout.activityte_main) MediaPlayerView (R.layout.activityte_main) (isto, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()}}

Nota: Se você estiver usando pela primeira vez, não se esqueça de habilitar o BIOS. Você pode fazer isso reiniciando o sistema.

Você terá que adicionar um dispositivo virtual. Basta clicar em Abra o gerenciador AVD.

o que é evento em javascript

Selecione um dispositivo de sua escolha e você está pronto para começar!

Isso só será executado quando a tela estiver ativa, mas para fazer este aplicativo funcionar mesmo em segundo plano, você precisa adicionar mais algumas linhas de código no activity_main.xml Arquivo.

Passo 2

Depois de executar o código correspondente, você será capaz de executar o aplicativo e reproduzir a música em segundo plano, ou seja, se qualquer outro aplicativo for aberto, este áudio ainda estará tocando.

Vamos ver como isso pode ser feito.

  • Crie outra classe na pasta Java e nomeie-a. Aqui, eu chamo de “ MyService '
  • Esta classe estende a classe Service.
  • Depois de ter os métodos da classe Service, implemente os métodos clicando em alt + Enter.
  • Depois disso, você deve substituir os métodos. Então, clique com o botão direito na janela para obter as opções.
  • Gere os métodos de substituição, selecione onStartCommand () , e OnDestroy ().
  • Edite o onStartCommand () métodos adicionando o seguinte código:
MediaPlayer player = MediaPlayer.create (this, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()

Nota: Exclua este código no Atividade principal.

  • Isso gerará um erro solicitando que você remova a instrução. Portanto, remova a instrução return e declare MediaPlayer como um método privado e retorne START_STICKY . Isso retornará o status inicial.
  • Adicionar player.stop () no onDestroy () método.

etapa 3

Vamos para carne e vá para layouts, clique em android_main.xml para obter o arquivo XML do aplicativo.

  • Remova o TextView e substitua-o pelo LinearLayout e adicione botões. Adicione o código correspondente.
<LinearLayout andróide:orientação= 'vertical' andróide: layout_width= 'match_parent' andróide: layout_height= 'wrap_content' andróide: layout_centerVertical= 'verdadeiro' Ferramentas:ignorar= 'MissingConstraints'><Botão andróide:Eu iria= '@ + id / buttonStart' andróide:texto= 'Iniciar serviço' andróide: layout_width= 'wrap_content' andróide: layout_height= 'match_parent'/><Botão andróide:Eu iria= '@ + id / buttonStop' andróide:texto= 'Parar serviço' andróide: layout_width= 'wrap_content' andróide: layout_height= 'match_parent'/>LinearLayout>
  • Depois de fazer isso, volte para o Atividade principal classe e adicionar o código correspondente, a fim de vincular o arquivo XML e o MyServiceClass.
pacote com.example.newproject import androidx.appcompat.app.AppCompatActivity public class MainActivity estende AppCompatActivity implementa View.OnClickListener {private Button start, stop @Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (R. savedInstanceState) setContentView .activity_main) start = (Button) findViewById (R.id.buttonStart) stop = (Button) findViewById (R.id.buttonStop) start.setOnClickListener (this) stop.setOnClickListener (this)} @Override public void onClick (Exibir visualização ) {if (view == start) {startService (new Intent (this, MyServiceClass.class))} else if (view == stop) {stopService (new Intent (this, MyServiceClass.class))}}}

Passo 4

Quando terminar de vincular as classes, vamos executar o código.

Nota: Adicione o nome da classe de serviço no arquivo AndroidManifiest.xml.

Em seguida, vamos executar o código.

Depois de iniciar o serviço, ele será executado em segundo plano, mesmo se outro aplicativo for aberto. Você pode iniciar ou parar o serviço clicando nos botões.

Esta é uma demonstração simples em que você aprendeu a trabalhar com os serviços Android.

Com isso, chegamos ao final deste artigo no “Tutorial de serviços Android”.Espero que você tenha esclarecido os tópicos abordados neste blog.

Agora que você acessou nosso blog Tutorial de serviços Android, pode conferir o para iniciar seu aprendizado rapidamente.

Tem alguma dúvida? Não se esqueça de mencioná-los nos comentários deste blog “Tutorial de serviços Android”. Nós entraremos em contato com você.