【问题标题】:Why does my application appear 4 times on my device?为什么我的应用程序在我的设备上出现了 4 次?
【发布时间】:2010-10-30 22:58:03
【问题描述】:

当我将我的应用程序安装到设备或模拟器上时,它会在应用程序菜单中多次出现,在我的情况下,我会看到 4 个图标显示我的应用程序名称。

似乎每个图标都代表一个活动,并且由于我的应用程序包含 3 个选项卡(带有活动),我的菜单上的前 3 个图标转到特定活动,第 4 个图标将我带到应用程序本身

这是我的清单

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

谢谢

【问题讨论】:

    标签: android launcher android-2.1-eclair


    【解决方案1】:

    因为你有 4 个活动与

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

    这会为您的活动添加一个启动器图标。

    【讨论】:

    • 谢谢你帮了我很多忙!!
    【解决方案2】:

    答案已经给出,但我只是简单介绍一下。在 Java 中,应用程序将从包含 ma​​in 方法的类开始,这基本上是整个应用程序的单个入口点。

    在 Android 中,您可能已经注意到 Activity 类中没有 main 方法。这里我们使用 Manifest 文件来做同样的事情。一个应用程序可以有多个入口点,"android.intent.action.MAIN" 表示这个活动应该是主要的启动活动,LAUNCHER 类别表示这个入口点应该列在应用程序启动器中。一旦您以LAUNCHER 的身份进行活动,android 就会为其提供一个应用程序图标和名称,您一定已经注意到,单击您案例中的 4 个图标中的每一个都会将您带到 4 个不同的活动。

    最重要的是,如果我们的应用程序不需要多个入口点,您就不必使用它。

    【讨论】:

    • 最具描述性的答案,但也向其他所有人 +1。谢谢:)
    【解决方案3】:

    从最后 3 个活动中删除 intent-filter

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多