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
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.