2010-10-30 12 views
5

Wenn ich meine Anwendung auf einem Gerät oder Emulator installiere, erscheint sie mehrmals im Menü Anwendungen, in meinem Fall erhalte ich 4 Symbole, die meinen Anwendungsnamen zeigen.Warum erscheint meine Anwendung 4 Mal auf meinem Gerät?

Es scheint, dass jedes Symbol eine Aktivität repräsentiert, und da meine Anwendung 3 Registerkarten (mit Aktivitäten) die ersten drei Symbole auf dem Menü für eine bestimmte Aktivität gehen, und das vierte Symbol nimmt mich an die App selbst

Das ist mein Manifest

<?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> 

Was kann ich nur für meinen App auf meinem Gerät ein Symbol haben und nicht 4?

Dank

Antwort

6

Die Antwort ist bereits zur Verfügung gestellt worden, aber ich bin Briefing es einfach. In Java startet die Anwendung mit der Klasse, die die Haupt--Methode enthält und die im Grunde ein einzelner Einstiegspunkt für die gesamte Anwendung sein wird.

In Android konnten Sie bemerkt haben, dass es keine Hauptmethode innerhalb Ihrer Aktivitätsklasse gibt. Hier verwenden wir Manifest-Datei, um das gleiche zu tun. Eine Anwendung kann mehrere Einstiegspunkte haben, und "android.intent.action.MAIN" gibt an, dass diese Aktivität die Hauptstartaktivität sein sollte, und die LAUNCHER Kategorie besagt, dass dieser Einstiegspunkt im Anwendungsstartprogramm aufgeführt sein sollte. Sobald Sie eine Aktivität machen als LAUNCHER Android bietet ein Anwendungssymbol und Name, und Sie müssen bemerkt haben, dass das Klicken auf jedes der 4 Symbole in Ihrem Fall würde Sie zu 4 verschiedenen Aktivitäten.

Die Quintessenz ist, wenn unsere Anwendung nicht mehrere Eingangspunkte benötigt, müssen Sie sie nicht verwenden.

+0

Die meisten beschreibenden Antworten, aber +1 für alle anderen aswel. Vielen Dank :) – Jimmy

10

Weil Sie haben 4 Aktivitäten mit

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

dass ein Launcher-Symbol für Ihre Tätigkeit hinzufügt.

+0

Vielen Dank das hat mir sehr geholfen !! –

5

entfernen intent-filter aus den letzten 3 Aktivitäten

Verwandte Themen