我有一个 ListActivity 和一个 MapActivity。我想在用户在首选项窗口中选择的应用程序启动时启动这些 Activity 之一。
到目前为止,我看到在应用程序启动时启动 Activity 的唯一方法是在应用程序 list 文件中指定它使用...
<activity android:name=".MyActiivty"
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 ,然后启动 ListActivity 或 MapActivity。似乎浪费了一个 Activity ,只做另一个 Activity 。在我的研究中,我没有找到任何解决这个问题的方法。任何建议将不胜感激。
感谢和问候, 戴夫
最佳答案
首先,不要创建第三个 Activity 。只要有LAUNCHER
Activity
可以是列表或 map ,并让它调用 startActivity()
另一个(加上 finish()
)在 onCreate()
在调用 setContentView()
之前需要的时候。这样,大约 50% 的时间,您会启动正确的 Activity 。
原则上,您可以让两个 Activity 都有 LAUNCHER
<intent-filter>
,只启用一个。但是,这不适用于桌面快捷方式,它将路由到特定 Activity (无论他们在创建快捷方式时碰巧配置了哪个 Activity )。如果这不关心你,你可能会走这条路。但是,请尝试使用一些设备和自定义主屏幕对其进行测试——我不确定是否每个人都会立即接受您的更改。
关于android - 我可以根据用户偏好在启动时启动不同的 Activity 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4074840/