- Che cos'è un intento in Android?
- Qualcuno può elaborare con un esempio?
- Quali sono i tipi di Intenti e perché li stiamo usando?
- Perché gli Intenti sono così importanti in Android?
Risposte:
Un Intento è una "intenzione" di compiere un'azione; in altre parole,
un oggetto di messaggistica che è possibile utilizzare per richiedere un'azione da un altro componente dell'app
Un Intento è fondamentalmente un messaggio per dire che hai fatto o vuoi che succedesse qualcosa. A seconda dell'intento, le app o il sistema operativo potrebbero ascoltarlo e reagire di conseguenza. Pensala come una e-mail esplosiva a un gruppo di amici, in cui dici al tuo amico John di fare qualcosa, o agli amici che possono fare X ( "filtri di intenti" ), per fare X. Le altre persone ignoreranno l'e-mail, ma John (o gli amici che possono fare X) reagiranno ad esso.
Per ascoltare un intento di trasmissione (come il telefono che squilla o viene ricevuto un SMS), si implementa un ricevitore di trasmissione , al quale verrà passato l'intento. Per dichiarare che puoi gestire l'intento di un'altra app come "scatta foto", dichiari un filtro di intenti nel file manifest della tua app .
Se vuoi far scattare un'intenzione di fare qualcosa, come far apparire il dialer, spegni un'intenzione dicendo che lo farai.
Un Intento è fondamentalmente un messaggio che viene passato tra i componenti (come Attività , Servizi, Ricevitori di trasmissione e Fornitori di contenuti ). Quindi, è quasi equivalente ai parametri passati alle chiamate API. Le differenze fondamentali tra chiamate API e invocazione di componenti tramite intenti sono:
Naturalmente, gli Intenti possono essere fatti funzionare esattamente come le chiamate API usando quelli che sono chiamati Intenti espliciti, che verranno spiegati in seguito. Ma il più delle volte, gli intenti impliciti sono la strada da percorrere e questo è ciò che viene spiegato qui.
Un componente che vuole invocare un altro deve solo esprimere il suo intento di fare un lavoro. E qualsiasi altro componente che esiste e ha affermato che può fare un simile lavoro attraverso i filtri di intenti , viene invocato dalla piattaforma Android per eseguire il lavoro. Ciò significa che nessuno dei due componenti è a conoscenza dell'esistenza reciproca ma può comunque collaborare per fornire il risultato desiderato all'utente finale.
Questa connessione invisibile tra i componenti è ottenuta attraverso la combinazione di intenti, filtri di intenti e la piattaforma Android.
Questo porta a enormi possibilità come:
Ecco ulteriori dettagli tecnici sugli Intenti dalla documentazione di Android .
Un intento è una descrizione astratta di un'operazione da eseguire. Può essere utilizzato con startActivity per avviare un'attività , broadcastIntent per inviarlo a qualsiasi componente BroadcastReceiver interessato e startService (Intent) o bindService (Intent, ServiceConnection, int) per comunicare con un servizio in background.
Un intento fornisce una funzione per eseguire l'associazione in fase di runtime tra il codice in diverse applicazioni. Il suo uso più significativo è nel lancio di attività, dove può essere pensato come la colla tra le attività. È fondamentalmente una struttura di dati passivi che contiene una descrizione astratta di un'azione da eseguire. Le informazioni primarie in un intento sono:
- azione L' azione generale da eseguire, come ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, ecc.
- dati I dati su cui operare, come un record personale nel database dei contatti, espressi come Uri.
Gli intenti sono un modo per dire ad Android cosa vuoi fare . In altre parole, descrivi la tua intenzione. Gli intenti possono essere utilizzati per segnalare al sistema Android che si è verificato un determinato evento. Altri componenti in Android possono registrarsi a questo evento tramite un filtro intenti.
Di seguito sono riportati 2 tipi di intenti
usato per chiamare un componente specifico. Quando sai quale componente vuoi avviare e non vuoi dare all'utente il controllo gratuito su quale componente usare. Ad esempio, hai un'applicazione che ha 2 attività. Attività A e attività B. Si desidera avviare l'attività B dall'attività A. In questo caso, si definisce un intento esplicito mirato all'attività B e quindi lo si utilizza per chiamarlo direttamente.
usato quando hai un'idea di cosa vuoi fare, ma non sai quale componente dovrebbe essere lanciato. Oppure, se si desidera offrire all'utente un'opzione per scegliere tra un elenco di componenti da utilizzare. Se questi Intenti vengono inviati al sistema Android, cerca tutti i componenti che sono registrati per l'azione specifica e il tipo di dati. Se viene trovato un solo componente, Android avvia direttamente il componente. Ad esempio, hai un'applicazione che utilizza la fotocamera per scattare foto. Una delle funzionalità della tua applicazione è quella di dare all'utente la possibilità di inviare le foto che ha scattato. Non sai che tipo di applicazione ha l'utente che può inviare foto e vuoi anche dare all'utente la possibilità di scegliere quale applicazione esterna usare se ne ha più di una. In questo caso non useresti un intento esplicito.
Un intento esplicito viene sempre consegnato al suo obiettivo, indipendentemente da ciò che contiene; il filtro non è consultato. Ma un intento implicito viene consegnato a un componente solo se può passare attraverso uno dei filtri del componente
Se un Intenti viene inviato al sistema Android, determinerà le applicazioni adatte per questi Intenti. Se sono stati registrati diversi componenti per questo tipo di Intenti, Android offre all'utente la possibilità di aprirne uno.
Questa determinazione si basa su IntentFilters. Un IntentFilters specifica i tipi di intento a cui può rispondere un'attività, un servizio o un ricevitore Bcastcast. Un filtro intento dichiara le capacità di un componente. Specifica cosa può fare anattività o servizio e quali tipi di trasmissioni è in grado di gestire un ricevitore. Consente al componente corrispondente di ricevere Intenti del tipo dichiarato. I filtri Intent sono in genere definiti tramite il file AndroidManifest.xml. Per BroadcastReceiver è anche possibile definirli in codice. Un IntentFilters è definito dalla sua categoria, azione e filtri dati. Può contenere anche metadati aggiuntivi.
Se un componente non definisce un filtro Intenti, può essere chiamato solo da Intenti espliciti.
Di seguito sono 2 modi per definire un filtro
Se si definisce il filtro di intenti nel manifest, l'applicazione non deve essere in esecuzione per reagire agli intenti definiti nel suo filtro. Android registra il filtro quando viene installata l'applicazione.
Se si desidera che il proprio destinatario della trasmissione riceva l'intento solo quando l'applicazione è in esecuzione. Quindi dovresti definire il tuo filtro di intento durante il runtime (programmaticamente). Tieni presente che questo funziona solo per i ricevitori broadcast.
Dopo aver scritto una singola attività, è necessario passare a un'altra attività per eseguire un'altra attività con o senza informazioni dalla prima attività.
La piattaforma Android consente la transizione tramite Intent Interface.
Le parole sono prese da qui: usando Intent Demo e ti suggerisco di passare attraverso questo esempio perché hanno anche fornito un file di codice. così puoi usarlo e capire facilmente lo stesso.
Android Intent ti consente di spostarti da un'attività Android a un'altra. Con esempi, questo tutorial parla anche di vari tipi di intenti Android.
Android Intent può essere definito come un semplice oggetto messaggio utilizzato per comunicare da un'attività a un'altra.
Gli intenti definiscono l'intenzione di un'applicazione. Sono inoltre utilizzati per trasferire dati tra attività.
Un Intento Android può essere utilizzato per eseguire le seguenti 3 attività:
L'intenzione può essere ampiamente classificata in 2 categorie. Non ci sono parole chiave per questa categoria e solo un'ampia classificazione di come vengono utilizzati gli intenti Android.
Intento Android esplicito
L'intento Android esplicito è l'intento in cui si definisce esplicitamente il componente che deve essere chiamato dal sistema Android.
Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);
Intento Android implicito
Intenti Android impliciti è l'intento in cui invece di definire i componenti esatti, si definisce l'azione che si desidera eseguire. La decisione di gestire questa azione è lasciata al sistema operativo. Il sistema operativo decide quale componente è meglio eseguire per scopi impliciti. Vediamo un esempio:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
Per ulteriori informazioni è possibile visitare di seguito
http://developer.android.com/reference/android/content/Intent.html
Secondo la loro documentazione:
Un intento è un oggetto che fornisce un'associazione di runtime tra componenti separati (come due attività). L'intento rappresenta "l'intenzione di fare qualcosa" di un'app. Puoi utilizzare gli intenti per un'ampia varietà di attività, ma molto spesso vengono utilizzati per iniziare un'altra attività.
Ecco il link con l'esempio: http://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent
Come descrive il documento, al fine di avviare un'attività (è necessario anche comprendere quale sia l'attività) utilizzare l'intento come di seguito
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
Un intento è una descrizione astratta di un'operazione da eseguire. Può essere utilizzato con startActivity per avviare un'attività, broadcastIntent per inviarlo a qualsiasi componente BroadcastReceiver interessato e startService (Intent) o bindService (Intent, ServiceConnection, int) per comunicare con un servizio in background.
Per maggiori dettagli vedi questi link:
1). http://developer.android.com/reference/android/content/Intent.html
2) http://developer.android.com/guide/topics/intents/intents-filters.html
3). http://www.vogella.de/articles/AndroidIntent/article.html
ci sono molti altri articoli disponibili.
che cos'è l'intento?
È un tipo di messaggio o informazione che viene passato ai componenti. Viene utilizzato per avviare un'attività, visualizzare una pagina Web, inviare sms, inviare e-mail, ecc.
Esistono due tipi di intenti in Android:
Intento implicito Intento
esplicito
L' intento implicito viene utilizzato per invocare i componenti di sistema
Esempio
Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));
startActivity(i);
L' intento esplicito viene utilizzato per invocare la classe di attività.
Esempio
Intent intent = newIntent (this, SecondActivity.class);
startActivity(intent);
puoi leggere di più
http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html
In una visione ampia, possiamo definire Intent come
Quando un'attività vuole iniziare un'altra attività, crea un oggetto chiamato Intent che specifica quale attività desidera iniziare.
Un'applicazione Android può contenere zero o più attività. Quando l'applicazione ha più di un'attività, spesso è necessario spostarsi da una all'altra. In Android, navighi tra le attività attraverso ciò che è noto come un intento. È possibile passare alcuni dati all'attività che si desidera avviare attraverso l'intento, utilizzando putExtra ().
Dal collegamento cartaceoDeep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013
L'intento è compreso in alcune righe piccole ma efficaci
Da questa discussione una semplice risposta dell'architetto androide Dianne Hackborn la afferma come una data container
realtà.
Dal punto di vista dell'architettura Android :
Intent è un contenitore di dati utilizzato per la comunicazione tra processi. È costruito sulla base Binder
dell'architettura Android.
Gli intenti vengono utilizzati per avviare un'altra attività da un'attività e vengono sostanzialmente utilizzati per diversi scopi, come l'invio di dati a un'altra attività da un'attività e per l'attivazione.
Sono fondamentalmente di due tipi
Intenzioni implicite.
Intenzioni esplicite.
Come principiante lo so molto, penso che questo darà un'idea di base sugli intenti di Android