2010-10-30 31 views
5

當我將應用程序安裝到設備或模擬器上時,它會在應用程序菜單中多次出現,在我的情況下,我會得到4個圖標顯示我的應用程序名稱。爲什麼我的應用程序在我的設備上出現4次?

看來,每個圖標代表一個活動,並且因爲我的應用程序包含3個標籤(與活動)我的菜單上的第一個3個圖標去一個特定的活動,和第四圖標帶我到應用程序本身

這是我的清單

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

我能做些什麼來只能有一個圖標,我的應用我的設備上,而不是4?

感謝

回答

6

答案已經提供,但我只是簡要介紹它刪除intent-filter。在Java中,應用程序將從包含主方法的類開始,並且基本上是整個應用程序的入口點。

在Android中,您可能已經注意到Activity類中沒有主要方法。這裏我們使用Manifest文件來做同樣的事情。一個應用程序可以有多個入口點,"android.intent.action.MAIN"表示這個活動應該是主要的開始活動,並且LAUNCHER類別表示這個入口點應該列在應用程序啓動器中。一旦你做了一個活動LAUNCHER android提供了一個應用程序圖標和名稱,你一定注意到,點擊你的案例中的4個圖標中的每一個會帶你到4個不同的活動。

底線是如果我們的應用程序不需要多個入口點,您不必使用它。

+0

最具描述性的答案,但對其他人的+1。謝謝 :) – Jimmy 2010-10-31 16:59:13

10

因爲你有4個活動,

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

,增加了您的活動的啓動圖標。

+0

謝謝你,這幫了我很多! – 2014-09-18 14:52:32

相關問題