Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo usar una intención para actualizar una actividad?

Tengo un servicio que está descargando un archivo. Cuando termine la descarga, me gustaría actualizar mi lista de "Archivos descargados" en mi Activity , pero solo si la Activity está ejecutando. No quiero que la Activity inicie si no se está ejecutando.

Esperaba poder hacer esto haciendo un nuevo Intent con alguna bandera especial.

Alguien tiene alguna idea de cómo puedo lograr esto? ¿Un pequeño ejemplo de código?

  • Crear animación de escaneado utilizando el estudio de Android
  • No se puede encontrar el módulo con la ruta Gradle. Vinculación a la biblioteca -no especificado en su lugar
  • EXCEPCIÓN FATAL: principal java.lang.UnsatisfiedLinkError en la biblioteca de Android Studio
  • Cómo mover la flecha giratoria de Android Spinner más cerca de la que está emitiendo texto
  • Objetivo de la llamada en Android
  • Genera el nombre de apk como nombre de paquete en Android Studio
  • Cómo utilizar assert en Android Studio
  • Vista previa de la cámara Android: relación de aspecto 1: 1, ¿cómo?
  • 2 Solutions collect form web for “¿Cómo usar una intención para actualizar una actividad?”

    Puede crear una nueva instancia BroadcastReceiver y hacer algo a lo largo de estas líneas en el método onResume () de su actividad:

     registerReceiver(myReceiver, new IntentFilter(DownloadService.ACTION_FILE_DOWNLOADED)); 

    Después de eso, anule el método onReceive () de myReceiver para llamar a una función que actualiza el componente que desea:

     @Override public void onReceive(Context context, Intent intent) { ... updateViewWithData(service.getNewFileData()); ... } 

    En el método onPause () de su actividad, simplemente anule el registro del receptor:

     unregisterReceiver(myReceiver); 

    Espero que esto te ayude, siéntete libre de preguntar si hay algo incierto.

    La buena manera de hacerlo es vincular la actividad de "Archivos descargados" al servicio. Cuando enlaza el servicio, en la función onServiceConnected, registre una devolución de llamada de Binder. Entonces, siempre que tenga nuevos datos disponibles, el servicio sólo llama a la devolución de llamada. Si la actividad no se está ejecutando, la lista de devolución de llamada en el lado del servicio estará vacía, por lo que no informará a su actividad.

    Para obtener un ejemplo de este enfoque, eche un vistazo a RemoteService.java en Android SDK:

    Samples \ ApiDemos \ src \ com \ ejemplo \ android \ apis \ app \

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.