2010-10-30 20 views
5

Quando installo la mia applicazione su un dispositivo o emulatore appare più volte nel menu delle app, nel mio caso ottengo 4 icone che mostrano il nome della mia applicazione.Perché la mia applicazione appare 4 volte sul mio dispositivo?

Sembra che ogni icona è che rappresenta un'attività, e dal momento che la mia applicazione contiene 3 schede (con animazione) i primi 3 icone sul mio menù andare ad una particolare attività, e l'icona 4 ° mi porta l'applicazione stessa

Questo è il mio manifesto

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.jameselsey" 
     android:versionCode="1" 
     android:versionName="1.0"> 

    <uses-sdk android:minSdkVersion="7" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>  
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 

    <application android:icon="@drawable/icon" 
        android:label="@string/app_name" 
        android:name="com.jameselsey.domain.GlobalState" 
        android:theme="@android:style/Theme.NoTitleBar"> 

     <activity android:name=".DefaultActivity" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity android:name=".MyContactsActivity" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity android:name=".MyMapsActivity" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity android:name=".OptionsActivity" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <uses-library android:name="com.google.android.maps" /> 
    </application>  
</manifest> 

Cosa posso fare per avere una sola icona per la mia app sul mio dispositivo e non 4?

Grazie

risposta

6

La risposta è già stata fornita, ma io sono solo il briefing di esso. In Java l'applicazione inizierà con la classe che contiene il metodo principale e che sarà fondamentalmente un punto di ingresso singolo per l'intera applicazione.

In Android si potrebbe notare che non esiste un metodo principale all'interno della propria classe di attività. Qui usiamo il file manifest per fare lo stesso. Un'applicazione può avere più punti di ingresso e "android.intent.action.MAIN" indica che questa attività dovrebbe essere l'attività di avvio principale e la categoria LAUNCHER afferma che questo punto di ingresso dovrebbe essere elencato nell'avvio dell'applicazione. Una volta che si effettua un'attività come LAUNCHER, Android fornisce un'icona dell'applicazione e il nome e si deve aver notato che facendo clic su ciascuna delle 4 icone nel tuo caso si passerebbe a 4 diverse attività.

La linea di fondo è se la nostra applicazione non richiede più punti di ingresso non è necessario utilizzarlo.

+0

La risposta più descrittiva, ma +1 a tutti gli altri aswel. Grazie :) – Jimmy

10

Perché avete 4 attività con

`   <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 

che aggiunge un'icona di avvio per la vostra attività.

+0

Grazie a voi questo mi ha aiutato molto !! –

5

rimuovere intent-filter degli ultimi 3 attività

Problemi correlati