2013-05-18 16 views
14

Qualcuno potrebbe spiegare le seguenti righe nel manifesto -Android Manifest- filtro e l'attività intento

<activity 
     android:name=".AboutUs" 
     android:label="@string/app_name"> 
     <intent-filter > 
      <action android:name="com.example.app1.ABOUT" /> 
      <category android:name="android.intent.category.DEFAULT"/> 
     </intent-filter> 

    </activity>  

Come sono i campi in attività e filtro intenti importante e quando si hanno usato/riferimento? Scusa, ho provato a leggere la documentazione, ma ancora non riuscivo a capire molto.

Grazie

+0

Per la categoria 'default' si dispone di questo [risposta] [1]. [1]: http://stackoverflow.com/questions/5727828/what-is-the-purpose-of-android-intent-category-default –

+0

controllare la documentazione http://developer.android .com/guida/argomenti/manifest/manifest-intro.html – Raghunandan

risposta

19
android:name=".AboutUs" 

Questo è il nome della classe di attività, il punto nella parte anteriore è notazione abbreviata per il tuo pacco Quindi questo sta effettivamente per com.your.package.name.AboutUs il che significa che il file java che rappresenta questa attività è chiamato AboutUs.java

android:label="@string/app_name" 

label è la stringa che viene mostrato nel programma di avvio (se l'attività è elencato nel programma di avvio) e nella parte superiore del la finestra quando l'attività è aperta.

<intent-filter > ... </intent-filter> 

filtro di intent definisce gli Intenti che l'attività "ascolta" per l'avvio.

<action android:name="com.example.app1.ABOUT" /> 
<category android:name="android.intent.category.DEFAULT"/> 

d'azione e categoria sono entrambi i campi che vengono impostati su un Intent prima di essere "sparato" nel sistema. Il sistema cercherà quindi tutte le attività che corrispondono sia all'azione che alla categoria e, se ne trova una, lancerà quell'attività, o se trova più elementi mostrerà all'utente tutte loro e lascerà che scelgano.

Nel tuo caso l'azione che stai ascoltando per com.example.app1.ABOUT è un'azione personalizzata specifica per la tua app, non una delle azioni di sistema.

ecco quello che un intento che avrebbe avviato questa particolare attività potrebbe essere simile:

Intent i = new Intent(); 
i.setAction("com.example.app1.ABOUT"); 
i.addCategory("android.intent.category.DEFAULT"); 
startActivity(i); 

Nota che perché hai creato un'azione personalizzata, questo intento non richiede l'accesso al tuo AboutUs.class quindi questo intento potrebbe essere tecnicamente licenziato da qualsiasi app sul dispositivo e si avvierebbe nella tua attività.

+0

Ottima risposta! Proprio quello di cui avevo bisogno. Ho un dubbio però. Di solito inizio un'attività seguente modo - 'Intento i = new Intent ("com.example.app1.ABOUT");' ' startActivity (i);' Questo funziona bene, quindi questo significa che i può saltare la parte setCategory? Grazie mille! –

+1

Sì, funzionerà bene, e sì, puoi saltare la categoria dal momento che stai usando 'DEFAULT' – FoamyGuy

1

Per il ACTION si dispone di questo answer e per la categoria predefinita che si dispone di questo answer

+0

Grazie a @Gabriel –

1

Un'attività è un componente dell'applicazione che fornisce una schermata con cui gli utenti possono interagire per fare qualcosa, come comporre il telefono, scattare una foto, inviare una e-mail o visualizzare una mappa. Per dichiarare la tua attività, apri il file manifest e aggiungi un elemento come elemento secondario dell'elemento come nell'esempio.

  • L'attributo android: name è l'unico attributo obbligatorio, specifica il nome della classe dell'attività.
  • L'androide: attributo etichetta è un'etichetta leggibile dall'utente per l'applicazione nel suo complesso, e un'etichetta predefinita per ciascuno dei componenti dell'applicazione

Un elemento può anche specificare vari intenti filtri-utilizzando l'elemento- per dichiarare come altri componenti dell'applicazione possono attivarlo.

  • L'elemento specifica che questo è il punto di accesso "principale" all'applicazione.
  • L'elemento specifica che questa attività deve essere elencata nell'avvio applicazioni del sistema (per consentire agli utenti di avviare questa attività).

Si prega di fare riferimento alla http://developer.android.com/guide/components/activities.html

+0

Grazie @rookiejava –

Problemi correlati