我正在编写一个Android应用程序,它有一个主要活动和一个子活动.当我在手机上安装应用程序进行测试时,我得到两个图标而不是一个.第一个图标用于主要活动,第二个图标用于子活动.我不希望/需要一个图标的子活动.
有谁知道如何在我的应用程序代码中关闭它,以便只安装主活动的图标?非常感谢您提供的任何信息!
谢谢,MobiKnow
Wor*_*ead 63
您的应用程序清单是否列出了与主启动器匹配的子活动下的intent过滤器?
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
确保您的子活动没有过滤这些意图.
编辑:为了清楚起见,请确保您的子活动中未列出上述行.该意图过滤器让Android系统知道您打算将其列为应用程序的入口点.
Cri*_*vez 22
我们有同样的问题,但我在清单中的代码之前以这种方式修复它
<application
android:debuggable="true"
android:allowBackup="true">
<activity android:name=".SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.noupdate.apptest_noupdate.MainActivity"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
请注意,在SplashActivity里面意图是这段代码
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
我只删除了这个类别
<category android:name="android.intent.category.LAUNCHER" />
Run Code Online (Sandbox Code Playgroud)
因此,在我删除了splash中的intent-filter类别后,它没有安装两个app图标,但只有一个用于main,代码就像这个通知那样删除了intent-filter类别
<application
android:debuggable="true"
android:allowBackup="true">
<activity android:name=".SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<activity
android:name="com.noupdate.apptest_noupdate.MainActivity"
android:icon="@drawable/ic_launcher"
android:theme="@android:style/Theme.NoTitleBar"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
它确实有帮助
Xar*_*han 15
它会创建两个App图标,因为您必须已将给定的过滤器添加到两个活动中.见清单.
<category android:name="android.intent.category.MAIN" />
Run Code Online (Sandbox Code Playgroud)
从另一个中删除上述声明.然后你很高兴去.
小智 7
像在其他答案中一样
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
Run Code Online (Sandbox Code Playgroud)
是罪魁祸首.但是,在我的清单中,我只有一个具有该意图过滤器的活动.事实证明,我使用的是我构建的库,它在其清单中声明了一个使用该intent过滤器的活动.因此,简而言之,请确保您的应用程序的清单和依赖项(如果有)只有一个带有intent过滤器的活动.
| 归档时间: |
|
| 查看次数: |
29439 次 |
| 最近记录: |