¿Qué es Jetpack Compose?

Jetpack Compose es la biblioteca de IU de Android más reciente que ha tomado la plataforma de desarrollo móvil de Android por sorpresa. Con Jetpack Compose, los desarrolladores pueden construir aplicaciones de alta calidad y sofisticadas que son más fáciles de mantener y escalar. La introducción de Jetpack Compose representa un cambio significativo en la forma en que se crea la interfaz de usuario de una aplicación de Android. En lugar de trabajar con una jerarquía de vistas de Android, Jetpack Compose utiliza un enfoque de programación declarativa para definir la IU de una aplicación. Esto significa que los desarrolladores pueden escribir código que describe cómo debe verse la interfaz de usuario de una aplicación, en lugar de manipular directamente los objetos de vista. Jetpack Compose también viene con una serie de herramientas que facilitan el diseño y la personalización de la interfaz de usuario de una aplicación. Desde una amplia variedad de widgets personalizados hasta la capaci...

Cómo pasar parámetros a un JobService

En mi post anterior expliqué como crear un JobSerivce, este job service recibe parámetros; Para pasar parámetros al JobService usamos la clase PersistableBundle de la siguiente manera.

private void requestAlertsToDelete(int[] alerts) {

   Alerts alertsRequest = Alerts.getAlertsRequest(
         SessionManager.getAuth(getActivity()),
         new int[]{},
         alerts);

   PersistableBundle bundle = new PersistableBundle();

   bundle.putString(Constants.INSTANCE.getREQUEST_PARAMS(), alertsRequest.toJSON());

   JobScheduler jobScheduler = (JobScheduler) getActivity()
                         .getSystemService(Context.JOB_SCHEDULER_SERVICE);

   JobInfo jobInfo = new JobInfo.Builder(0, new ComponentName(getActivity(), AlertJobService.class))
         .setExtras(bundle)
         .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
         .build();

   if (jobScheduler != null) {
      jobScheduler.schedule(jobInfo);
   }


Esta clase acepta tipos básicos, enteros, cadenas de caracteres y algunos otros, pero no Parcelables, por lo tanto lo que hice fue crear en mi clase Alerts un método llamado toJSON() que devuelve la instancia de esa clase a JSON.

Para esto uso la librería Gson, por si acaso les dejo el código también.

public String toJSON() {
   return gs.toJson(this, Alerts.class);
}

la variable gs está definida de forma global de la siguiente manera.
public  final Gson gs = new GsonBuilder().serializeNulls()
      .disableHtmlEscaping()
      .create();

Saludos

Comentarios

Entradas más populares de este blog

¿Qué es Jetpack Compose?

Hacer la barra de status transparente en Android.

Solicitar permisos en Android en tiempo de ejecución más fácilmente