WEBVTT

00:00.080 --> 00:01.970
Salve, amici, e bentornati.

00:01.970 --> 00:06.030
In questo video, impareremo a conoscere i ricevitori broadcast in Android.

00:06.050 --> 00:13.280
Un ricevitore di broadcast in Android è un componente che ascolta gli eventi o gli intenti di broadcast a livello di sistema

00:13.280 --> 00:16.840
e consente all'applicazione di rispondere a tali eventi.

00:16.850 --> 00:25.300
È un meccanismo fondamentale per la comunicazione tra componenti e per reagire a vari eventi del sistema o dell'applicazione.

00:25.310 --> 00:31.640
I ricevitori broadcast possono essere registrati staticamente nel file manifest o dinamicamente in fase di esecuzione.

00:31.640 --> 00:34.130
Quando si verifica uno di questi eventi.

00:34.160 --> 00:41.210
Fa entrare in azione l'applicazione creando una notifica nella barra di stato o eseguendo un'attività.

00:41.240 --> 00:46.310
A differenza delle attività, il ricevitore broadcast non contiene alcuna interfaccia utente.

00:46.310 --> 00:51.980
Entriamo in Android Studio e creiamo un'applicazione che utilizzi il ricevitore broadcast Apriamo

00:51.980 --> 00:58.670
Android Studio, creiamo un nuovo progetto, svuotiamo l'attività Views e diamogli un nome broadcast come Java Click.

00:58.670 --> 01:06.270
Questa applicazione ascolta i cambiamenti nella modalità aereo e visualizza un messaggio di brindisi quando la modalità

01:06.270 --> 01:10.200
viene affrontata utilizzando il ricevitore broadcast.

01:10.200 --> 01:13.800
A tale scopo, creerò una nuova classe Java.

01:13.800 --> 01:23.820
La chiamo ricevitore modalità aereo e la estendo dalla classe ricevitore broadcast.

01:23.820 --> 01:30.360
Il ricevitore broadcast è una classe astratta con tutti i metodi di ricezione astratti.

01:30.360 --> 01:32.400
Si trova nel pacchetto Android.

01:32.400 --> 01:39.000
Quindi, se facciamo clic sul controllo e sul tasto sinistro del mouse, possiamo vedere che questo è il ricevitore broadcast La classe

01:39.030 --> 01:41.490
astratta Alt+ Enter implementa i metodi.

01:41.490 --> 01:48.150
Abbiamo solo un metodo chiamato on receive e il metodo on receive è un metodo che viene chiamato quando il

01:48.150 --> 01:51.390
ricevitore broadcast riceve una trasmissione.

01:51.390 --> 01:58.020
Se osserviamo la firma del metodo, abbiamo due parametri, uno di tipo context e l'altro

01:58.020 --> 01:59.280
di tipo intent.

01:59.310 --> 02:00.360
Il contesto.

02:00.360 --> 02:04.620
È il contesto dell'applicazione o del componente che ha registrato il ricevitore.

02:04.620 --> 02:09.660
Fornisce l'accesso a risorse e servizi specifici dell'applicazione.

02:09.660 --> 02:10.550
L'intento.

02:10.560 --> 02:16.080
Il secondo parametro è l'intento di trasmissione che ha attivato il ricevitore.

02:16.080 --> 02:23.040
Contiene informazioni sull'evento trasmesso, come l'azione ed eventuali dati aggiuntivi.

02:23.040 --> 02:28.830
Quindi il metodo receive viene richiamato quando il ricevitore riceve una trasmissione.

02:28.830 --> 02:32.520
Controllerò qui se c'è un punto intenzionale.

02:32.550 --> 02:33.480
Questo è l'intento.

02:33.480 --> 02:34.800
Sto controllando le intenzioni.

02:34.800 --> 02:41.520
Il metodo di azione Dot get non è uguale a null e intent.

02:41.520 --> 02:45.000
Il punto ottiene l'azione punto uguale.

02:45.000 --> 02:45.960
Seguitemi.

02:45.960 --> 02:47.400
La lezione su tutto è successiva.

02:47.430 --> 02:57.690
Intent dot action e qui userò il metodo get action per cambiare la modalità aereo è un metodo che ci aiuta a ottenere

02:57.690 --> 02:59.670
l'azione.

02:59.670 --> 03:05.610
La stringa che definisce il tipo di evento o messaggio che si sta trasmettendo.

03:05.610 --> 03:11.940
È importante scegliere una stringa di azione unica che specifichi lo scopo della trasmissione.

03:11.970 --> 03:18.540
Anche gli altri componenti che si desidera ricevano questa trasmissione specificheranno la stessa stringa di azione quando registrano

03:18.540 --> 03:21.000
il loro ricevitore di trasmissione.

03:21.000 --> 03:29.820
In questo caso verifico se non è nullo e se l'azione è uguale alla modifica della modalità aereo.

03:29.820 --> 03:36.150
Sto verificando se l'azione di trasmissione è legata alla modifica della modalità aereo.

03:36.150 --> 03:41.250
Aprirò le parentesi per controllare la modalità aereo.

03:41.250 --> 03:50.790
Lo ottengo dal punto intent get boolean extra e dallo stato e lo imposto su false.

03:50.790 --> 03:55.350
Quindi considererò che la modalità aereo è avviata per errore.

03:55.350 --> 04:02.820
Sto verificando che la stringa di messaggio message msg sia uguale a is airplane mode.

04:02.850 --> 04:03.180
Su.

04:03.180 --> 04:08.010
Se è vero, la modalità aereo del display è attiva.

04:08.010 --> 04:14.610
Se non lo è, la modalità aereo è disattivata.

04:14.610 --> 04:17.430
È una scorciatoia per if e else.

04:17.460 --> 04:23.940
Ok, questa riga recupera l'extra booleano chiamato state dall'intent.

04:23.940 --> 04:29.040
Questo extra indica se la modalità aereo è attualmente attivata o disattivata.

04:29.070 --> 04:34.380
Se è attiva, occorre visualizzare il messaggio Modalità aereo attiva.

04:34.380 --> 04:40.560
Se è falso, la modalità aereo è disattivata per quel messaggio di toast.

04:40.680 --> 04:46.680
Creerò un nuovo messaggio di testo e visualizzerò la variabile messaggio.

04:46.680 --> 04:52.620
Il terzo passo consiste nel registrare il ricevitore, il ricevitore di trasmissione.

04:52.620 --> 04:56.700
Nel manifest, si può vedere che questo è il tag dell'applicazione.

04:56.700 --> 04:59.850
Abbiamo un'attività che ne è una componente.

04:59.950 --> 05:00.670
Applicazione.

05:00.670 --> 05:02.830
Come potete vedere, questa è l'applicazione.

05:02.830 --> 05:05.350
Abbiamo un componente chiamato attività.

05:05.350 --> 05:13.390
E qui ho bisogno di creare un altro componente, ma di tipo ricevitore che si riferisce al nome del ricevitore

05:13.390 --> 05:15.790
broadcast in modalità aereo.

05:15.790 --> 05:22.320
Sto dicendo che questa classe agirà come ricevitore di broadcast e la sto registrando nel manifest

05:22.330 --> 05:22.990
qui.

05:22.990 --> 05:30.910
Ho bisogno di impostare il filtro intenzionale o di chiudere il ricevitore all'inizio.
