动态指定第一个活动

时间:2010-12-12 02:31:09

标签: android

主要活动在AndroidManifest.xml中指定:

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

但我不知道如何根据代码逻辑动态指定第一个活动。

3 个答案:

答案 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