我有一个活动别名,该活动别名导致了我的一项活动。
<activity-alias
android:name="LauncherOne"
android:enabled="true"
android:targetActivity="org.test.app.LauncherActivity">
<intent-filter>
<action android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity-alias>
我希望能够选择要进行的活动,那么如何以编程方式更改targetActivity? 我真的找不到解决方法,因为我无法启用/禁用两个不同的targetactivities,因为它每次都会忘记默认的启动器。 而且我还没有找到一种方法来切换活动,而这种活动不会花费我的应用程序任何性能。
答案 0 :(得分:0)
我希望能够选择要进行的活动,那么如何以编程方式更改targetActivity?
不能。该信息被烘焙到清单中,并且在运行时无法更改。
解决方法:进行一项活动即启动器活动。让该活动使用Theme.Translucent.NoTitleBar
作为主题,因此没有UI。让该活动根据您选择的任何条件启动“真实”活动,然后根据finish()
本身启动活动,以使其不再位于后退堆栈中。粗略地说,这与具有启动屏幕活动的应用程序使用的方法相同,该应用程序随后决定了下一步要进行的活动,而没有实际的启动屏幕UI。