我可以根据用户偏好在启动时启动不同的活动吗?

我有一个ListActivity和一个MapActivity。 我想在用户在首选项窗口中选择的应用程序启动时启动其中一个活动。

到目前为止,我看到在应用程序启动时启动活动的唯一方法是使用…在应用程序清单文件中指定它。

      

我想我可能不得不启动一项活动,除了查看用户首选项之外什么都不做,然后启动ListActivity或MapActivity。 看起来像浪费一样,活动什么也不做,只能发起另一项活动。 在我的研究中,我没有find解决这个问题的方法。 任何建议将不胜感激。

谢谢和问候,戴夫

Solutions Collecting From Web of "我可以根据用户偏好在启动时启动不同的活动吗?"

首先,不要创建第三个活动。 只需让LAUNCHER Activity成为列表或地图,并在需要时调用setContentView()之前在onCreate()调用另一个(加上finish() )的startActivity() 。 这样,大约50%的时间,你正在开展正确的活动。

原则上,您可以让两个活动都具有LAUNCHER ,仅启用一个。 但是,这不适用于桌面快捷方式,这些快捷方式将路由到特定活动(在制作快捷方式时恰好配置的那个)。 如果这与您无关,您可能会走这条路。 但是,尝试使用一些设备和自定义主屏幕进行测试 – 我不确定是否每个人都会立即接受您的更改。

我刚刚将以下代码添加到onCreate()方法中,它就像魅力一样。

  Intent intent; intent = new Intent(this, MyMap.class); startActivity( intent ); finish(); 

对于新朋友(我),以下是戴夫的回答,以及我需要对AndroidManifest.xml进行的更改。

主要活动:

  Intent intent; intent = new Intent(this, DisplayMessageActivity.class); startActivity( intent ); 

更改为xml文件,来自 – > http://developer.android.com/training/basics/firstapp/starting-activity.html

AndroidManifest.xml中: