Tutorial de servicios de Android: ¿Cómo ejecutar una aplicación en segundo plano?



Este tutorial de servicios de Android lo ayuda a comprender cómo realizar operaciones en segundo plano, como reproducir música, no tiene ninguna interfaz de usuario adjunta

A menudo, al usar varias aplicaciones en su teléfono inteligente, es posible que desee cambiar de una aplicación a otra, pero también asegurarse de que todas sus aplicaciones permanezcan activas en segundo plano. Estos no son más que los servicios ofrecidos por . Por lo tanto, este artículo sobre el tutorial de servicios de Android lo ayudará a comprender cómo trabajar con los servicios.

puedes lanzar un doble a un int

Cubriré los siguientes temas:





¿Qué son los servicios de Android?

El servicio es básicamente un proceso. Servicio Android es un componente que se ejecuta en segundo plano para realizaroperaciones de larga duración sin interactuar con el usuario y funciona incluso si se destruye la aplicación.Otro componente de la aplicación puede iniciar un servicio y continuará ejecutándose en segundo plano incluso si cambia a otra aplicación.

Además, un componente puede vincularse a sí mismo a un servicio para interactuar con él y también realizar una comunicación entre procesos.



Nota: Android.app.Service es una subclase de la clase ContextWrapper y el servicio de Android no es un hilo o proceso separado.

Android: ciclo de vida de los servicios

El ciclo de vida de los servicios de Android puede tener dos formas de servicios. El ciclo de vida de un servicio sigue dos caminos diferentes, a saber:

  1. Empezado
  2. Ligado

Empezado



Un servicio se inicia cuando un componente de la aplicación llama Comienza el servicio () método. Una vez iniciado, un servicio puede ejecutarse en segundo plano de forma indefinida, incluso si se destruye el componente responsable del inicio. Se detiene utilizando el parada de servicio () método. El servicio también puede detenerse llamando al stopSelf () método.

Ligado

Un servicio está vinculado cuando un componente de la aplicación se une a él llamando bindService () . El servicio Bound ofrece una interfaz cliente-servidor que permite que los componentes interactúen con el servicio, envíen solicitudes y obtengan resultados. Procesa a través de la comunicación entre procesos (IPC). El cliente puede desvincular el servicio llamando al unbindService () método.

Ciclo de vida del servicio de Android- Tutorial de servicios de Android- Edureka

Pasando a la siguiente sección de este artículo sobre los servicios de Android, analicemos los diferentesmétodos en la clase de servicio.

Tutorial de servicios de Android: métodos

Existen algunos métodos mediante los cuales puede realizar operaciones fácilmente en cualquier aplicación. Algunos de ellos son:

MétodoDescripción
onStartCommand ()

Este método se llama cuando cualquier otro componente, como por ejemplo una actividad, solicita que se inicie el servicio, llamando Comienza el servicio () .

Es su responsabilidad detener el servicio cuando se realice el trabajo correspondiente utilizando stopSelf () o parada de servicio () métodos.

desvincular ()

Llama a este método cuando otro componente quiere vincularse con el servicio llamando bindService () .

Para implementar esto, debe proporcionar una interfaz que los clientes usen para comunicarse con el servicio. Devuelve un IBinder objeto. Si no desea permitir la vinculación, vuelva nulo .

onUnbind ()

El sistema llama a este método cuando todos los clientes están desconectados de una interfaz particular publicada por el servicio.

onRebind ()

Llama a este método cuando se conectan nuevos clientes al servicio después de haber sido notificado previamente que todos están desconectados en onUnbind (intención) .

onCreate ()

El sistema llama a este método cuando el servicio se crea primero usando onStartCommand () o desvincular () . Es necesario realizar una configuración única.

onDestroy ()

Este método se llama cuando el servicio ya no se usa y se está destruyendo. Su servicio debe implementar esto para limpiar cualquier recurso como hilos, oyentes registrados, receptores, etc.

Código esqueleto

La clase pública MainActivity extiende la actividad {Private TextView textView receptor BroadcastReceiver privado = new BroadcastReceiver () {@Override public void onReceive (Context context, 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, 'Descarga completa. Descarga URI:' + cadena, Toast.LENGTH_LONG) .show () textView.setText ('Descarga completada')} else {Toast.makeText (MainActivity.this, 'Descarga fallida', Toast.LENGTH_LONG) .show () textView.setText ('Descarga fallida')}}}} @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, nuevo IntentFilter (DownloadService.NOTIFICATION))} @Override protected void onPause () {super.onPause () unregisterReceiver (receptor)} public void onClick (Ver vista) {Intent intent = new Intent (this, DownloadService.class) // agregue información para el servicio qué archivo descargar y dónde store intent.putExtra (DownloadService.FILENAME, 'index.html') intent.putExtra (DownloadService.URL, 'www.edureka.co') startService (intent) textView.setText ('Servicio iniciado')}}

En este ejemplo, puede ver los métodos como onCreate () , En resumen () , onPause () . Estos métodos conforman la estructura de los Servicios en Android.

Ahora, veamos la parte práctica de este tutorial de servicios de Android.cómo crear un servicio y manejarlo.

Manifestación

Veamos cómo reproducir música de fondo. Para hacer eso, usaré Estudio Andriod .

Paso 1

Crea un nuevo proyecto vacío. Nombre su proyecto y haga clic en la carpeta Java y haga clic en el Actividad principal . Primero, agregue Reproductor multimedia para que pueda importar los detalles del reproductor, como inicio, configurar el bucle, etc.

paquete com.example.mydemoapplication import androidx.appcompat.app.AppCompatActivity public class MainActivity extiende AppCompatActivity {@Override protected void onCreate (Bundle SavedInstanceState) {super.onCreate (SavedInstanceState) setContentView (R.clayout) MediaPlactivity_mayer (esto, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()}}

Nota: si lo está utilizando por primera vez, no olvide habilitar el BIOS. Puede hacer esto reiniciando su sistema.

Deberá agregar un dispositivo virtual. Simplemente haga clic en Abra el administrador de AVD.

Seleccione un dispositivo de su elección y estará listo para comenzar.

Esto solo se ejecutará cuando la pantalla esté activa, pero para que esta aplicación funcione incluso en segundo plano, debe agregar algunas líneas más de código en el activity_main.xml archivo.

Paso 2

Una vez que ejecute el código correspondiente, podrá ejecutar la aplicación y podrá reproducir la música de fondo, es decir, si se abre cualquier otra aplicación, este audio seguirá reproduciéndose.

Veamos cómo se puede hacer esto.

  • Cree otra clase en la carpeta Java y asígnele un nombre. Aquí, lo he llamado ' MyService “.
  • Esta clase amplía la clase de servicio.
  • Una vez que tenga los métodos de la clase de servicio, implemente los métodos haciendo clic en alt + Enter.
  • Después de esto, debe anular los métodos. Entonces, haga clic derecho en la ventana para obtener las opciones.
  • Genere los métodos de anulación, seleccione onStartCommand () y OnDestroy ().
  • Edite el onStartCommand () métodos agregando el siguiente código:
MediaPlayer player = MediaPlayer.create (esto, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()

Nota: Elimina este código en el Actividad principal.

  • Esto arrojará un error pidiéndole que elimine la declaración. Entonces, elimine la declaración de devolución y declare MediaPlayer como un método privado y regrese START_STICKY . Esto devolverá el estado de inicio.
  • Añadir player.stop () en el onDestroy () método.

Paso 3

Ir res y vaya a diseños, haga clic en android_main.xml para obtener el archivo XML de la aplicación.

  • Elimine TextView y reemplácelo con LinearLayout y agregue Buttons. Agrega el código correspondiente.
<LinearLayout android:orientación='vertical' android: layout_width= 'match_parent' android: layout_height= 'envolver_contenido' android: layout_centerVertical= 'verdadero' herramientas:ignorar= 'MissingConstraints'><Botón android:carné de identidad= '@ + id / buttonStart' android:texto= 'Iniciar servicio' android: layout_width= 'envolver_contenido' android: layout_height= 'match_parent'/><Botón android:carné de identidad= '@ + id / buttonStop' android:texto= 'Detener servicio' android: layout_width= 'envolver_contenido' android: layout_height= 'match_parent'/>LinearLayout>
  • Una vez que haga esto, vuelva a la Actividad principal class y agregue el código correspondiente para vincular el archivo XML y el MyServiceClass.
paquete com.example.newproject import androidx.appcompat.app.AppCompatActivity public class MainActivity extiende AppCompatActivity implementa View.OnClickListener {botón privado iniciar, detener @Override protected void onCreate (Bundle SavedInstanceState) {super.onCreate (SavedInstanceViewState) set .activity_main) start = (Botón) findViewById (R.id.buttonStart) stop = (Botón) findViewById (R.id.buttonStop) start.setOnClickListener (this) stop.setOnClickListener (this)} @Override public void onClick (Ver vista ) {if (view == start) {startService (new Intent (this, MyServiceClass.class))} else if (view == stop) {stopService (new Intent (this, MyServiceClass.class))}}}

Etapa 4

Una vez que haya terminado de vincular las clases, ejecutemos el código.

Nota: agregue el nombre de la clase de servicio en el archivo AndroidManifiest.xml.

A continuación, ejecutemos el código.

Una vez que inicie el servicio, se ejecutará en segundo plano incluso si se abre otra aplicación. Puede iniciar o detener el servicio haciendo clic en los botones.

Esta es una demostración sencilla en la que ha aprendido a trabajar con los servicios de Android.

Entonces, con esto, llegamos al final de este artículo sobre “Tutorial de servicios de Android”.Espero que tengas claro los temas que se tratan en este blog.

Ahora que ha leído nuestro blog de tutoriales de servicios de Android, puede consultar el de Edureka para iniciar rápidamente su aprendizaje.

¿Tiene alguna consulta? No olvide mencionarlos en los comentarios de este blog 'Tutorial de servicios de Android'. Nos pondremos en contacto con usted.