主要活动在AndroidManifest.xml中指定:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
但我不知道如何根据代码逻辑动态指定第一个活动。
答案 0 :(得分:9)
指定一个默认的Activity,其中包含在onCreate方法中启动所需活动的逻辑。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// CODE HERE TO CREATE INTENT
startActivity(intent);
finish();
}
答案 1 :(得分:3)
@Ian G's answer是正确的 - 但我认为可以通过从backstack中删除启动活动来改进它。这就是@gardarh is trying to say。
我对这个相关问题有一个完整的答案,它基本上显示了问题的两个方面,活动代码和清单代码:
活动代码与@ Ian基本相同,所以我不会重新发布。但我会在答案中加入我的补充。
清单声明(请注意noHistory="true"
参数):
<activity
android:name=".activity.EntryActivity"
android:launchMode="singleInstance"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 2 :(得分:0)
我没有添加注释的要点,但在某些情况下从后台堆栈中删除启动器活动可能会有用。这篇SO帖子解释了如何做到这一点: Removing an activity from the history stack