Receptor de anuncios

uso de receptores de anuncios (Broadcast Receiver)

Servicios en Android (Receptor de anuncios)

Android fundamentals 07.3: Broadcast receivers

Ejemplo: receptor de anuncios

Ejemplo: Descargar un archivo con un servicio (IntentService) y mostrar una información (o notificación) cuando termine usando un receptor de anuncios

Añadir un switch a la interfaz de usuario para descargar usando DownloadService o DownloadIntentService.

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    public ActivityMainBinding binding;
    private static final int REQUEST_CONNECT = 1;
    public static final String WEB = "https://dam.org.es/ficheros/frases.html";
    public static final String ACTION_RESP = "RESPUESTA_DESCARGA";
    IntentFilter intentFilter;
    BroadcastReceiver broadcastReceiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        binding = ActivityMainBinding.inflate(getLayoutInflater());
        View view = binding.getRoot();
        setContentView(view);

        binding.botonIniciar.setOnClickListener(this);
        binding.botonParar.setOnClickListener(this);

        intentFilter = new IntentFilter(ACTION_RESP);
        intentFilter.addCategory(Intent.CATEGORY_DEFAULT);
        broadcastReceiver = new ReceptorOperacion();
        // registerReceiver(broadcastReceiver, intentFilter);
    }

    @Override
    public void onResume(){
        super.onResume();
        //---registrar el receptor ---
        registerReceiver(broadcastReceiver, intentFilter);
    }

    @Override
    public void onPause(){
        super.onPause();
        //--- anular el registro del recpetor ---
        unregisterReceiver(broadcastReceiver);
    }

    public class ReceptorOperacion extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            String respuesta = intent.getStringExtra("resultado");
            binding.salida.setText(respuesta);
            // mostrarMensaje(respuesta);
        }
    }

DownloadIntentService.java

@Override
    protected void onHandleIntent(Intent intent) {
        if (intent != null) {
            String web = intent.getExtras().getString("web");
            URL url = null;
            try {
                url = new URL(web);
                descargaOkHTTP(url);
            } catch (MalformedURLException e) {
                e.printStackTrace();
                enviarRespuesta("Error en la URL: " + e.getMessage());
            }
        }
    }
private void enviarRespuesta (String mensaje) {
Intent i = new Intent();
i.setAction(MainActivity.ACTION_RESP);
i.addCategory(Intent.CATEGORY_DEFAULT);
i.putExtra("resultado", mensaje);
sendBroadcast(i);
}

Modificar descargaOkHTTP() y escribirExterna() para que informen del resultado de la operación mediante un receptor de anuncios

Código del Servicio de Descarga

Deja una respuesta