2013-04-28 22 views
28

Qualcuno può spiegarmi la differenza tra "Attività" e "Intento" sulla piattaforma Android?Qual è la differenza tra attività e intenzioni in Android?

+6

È una domanda per il kickstart. Una volta ottenuto, non si può guardare indietro. – Siddharth

+0

Qualche spiegazione sul motivo per cui la mia risposta è stata accettata e quindi non accettata una settimana dopo? Non mi dispiacerebbe, ma la risposta accettata non è concisa, non ha struttura e non fornisce ulteriori letture. Né ha avuto alcun upvotes al momento. – Gusdor

risposta

36

In un linguaggio molto semplice, Activity è l'interfaccia utente e qualsiasi cosa tu possa fare con un'interfaccia utente.Quando si passa da un'interfaccia utente, è necessario avviare la nuova interfaccia utente con uno Intent. Il Intent è il tuo evento che viene trasmesso insieme ai dati dalla prima interfaccia utente a un'altra.

Gli intenti possono essere utilizzati anche tra le interfacce utente e i servizi in background. Viene inoltre inviato un Intent quando si desidera trasmettere dati a tutte le attività e ai servizi in background.

Intent vive come un oggetto, l'attività vive con una faccia e interazioni. Spero che sia stato utile.

+0

Voglio sottolineare qualcosa qui. Immagina di avere un'applicazione Android davvero semplice. La casella di testo dice ciao in questa attività possiamo invocare this.getIntent() nel caso in cui alcuni altri programmi o attività ci inviino dati. Quindi penso che l'attività e l'intento siano strettamente collegati l'un l'altro. (Ragazzi, per favore aggiustami se sbaglio, inizio a programmare in Android, quindi sono anche in difficoltà con alcuni concetti) –

+0

Come novizio, la tua risposta mi ha aiutato molto. Saluti! –

+0

Anytime dude .. Felice di aiutare – Siddharth

4

Queste sono classi diverse che non possono essere scambiate in alcun modo. L'utilizzo previsto delle sottoclassi Activity consiste nel controllare il contenuto e il comportamento della finestra dell'applicazione. Intent s, d'altro canto, sono semplici strutture di interscambio dati spesso utilizzate per il lancio di nuovi Activity e il passaggio di dati a loro, ma hanno anche altri usi.

3

La classe Attività si occupa di creare una finestra (a schermo intero o mobile) in cui è possibile posizionare gli elementi dell'interfaccia utente, in modo che le Attività interagiscano con l'utente.

Gli intenti sono utilizzati principalmente quando si desidera passare da una vista (ad esempio un'attività) a un'altra.

Quando sei attualmente in ActivityOne.class e si chiama:

Intent i = new Intent(this, ActivityTwo.class); 
startActivity(i); 

poi ActivityTwo verrà mostrato all'utente.

16

Se tutto ciò che si conosce su Intents, è quando li si utilizza per iniziare una nuova attività, quindi posso capire la tua confusione.

Nel caso più semplice, si avvia una nuova attività come questo:

Intent intent = new Intent(this, SomeOtherActivity.class); 
startActivity(intent); 

Di certo sembra che si sta partendo un'attività e l'attività che si sta iniziando è "intenzione". Ma quello che stai facendo è chiamare il metodo startActivity() e lo stai passando ad un container chiamato intent. Quel contenitore dice a startActivity() cosa fare.

Lo si può vedere più chiaramente quando si passa i dati a una nuova attività

Intent intent = new Intent(this, SomeOtherActivity.class); 
startActivity(intent); 
intent.putExtra("ANIMAL_TYPE", "unicorn"); 
intent.putExtra("ANIMAL_COLOR", "ruby"); 
startActivity(intent); 

Ora quando si chiama startActivity(), esamina intento e sa che ha bisogno di iniziare la classe SomeOtherActivity. Inoltre, nella classe SomeOtherActivity, è possibile accedere a quelle coppie chiave/valore passato dal intento in questo modo:

Bundle extras = getIntent().getExtras(); 
if(extras !=null) { 
    String animal = extras.getString("ANIMAL_TYPE"); 
    String animalColor = extras.getString("ANIMAL_COLOR"); 
} 
+0

ben spiegato. Hai scritto tutorial per gli sviluppatori Android? –

18

risposte esistenti vanno bene, ma qui è una definizione veramente di base dei due con alcuni link.

Activity

Una domanda component per la visualizzazione di un'interfaccia utente. La classe di attività è quella in cui vengono gestite tutte le interazioni dell'utente (pressioni di pulsanti, selezioni di elenchi). Un'attività specifica un layout per rappresentarlo sullo schermo.

Intent

Un intento è un messaggio di sistema. Può essere broadcast in tutto il sistema per notificare altre applicazioni (o la tua!) Di un evento, oppure può essere utilizzato per richiedere che il sistema visualizzi una nuova attività.

+1

Che differenza fa mentre si lancia un 'Activity' e si lancia un' Intent' usando 'am' cioè Activity Manager. –

Problemi correlati