因此,在我的应用程序的先前版本中,我有一个名为MainActivity的入口点
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这个版本,我有一个新的应用程序入口点,然后以编程方式重定向到MainActivity或其他屏幕。以下是两项活动:
<activity
android:name=".NewEntryPoint"
android:label="@string/title_activity_second" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我从main活动中删除了action.MAIN并将其设置为我的NewEntryPoint。但是,任何将应用程序作为主屏幕快捷方式的用户都将丢失该快捷方式。将启动器类别保留在MainActivity中也没有任何帮助。
有没有办法在不删除快捷方式的情况下更改我的应用程序的入口点?
谢谢!
答案 0 :(得分:1)
我相信你可以使用activity-alias
来解决这个问题,但我会质疑它是否值得将来维护,以避免用户再次为你的应用添加快捷方式。像这样:
<activity-alias
android:name=".MainActivity"
android:targetActivity=".NewEntryPoint">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity-alias>