如何开始第一次活动? (不总是)

时间:2012-12-06 10:19:21

标签: android

当我点击“退出”按钮

时,我跑了“Main”
Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_HOME);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

            startActivity(intent);

然后我回复我的申请并看到......这不是第一次“活动”..这是我最后的“活动”

如何设置程序...从第一个活动开始?

仅当我点击“退出”

时 我有: [1]活动[2]活动[3] [4]

当我在[4]或[3]活动中按下“退出”时,我进入“主”,然后如果我开始或返回应用程序我再次创建[1]活动 如果我“回头”或按下“向下按钮”按钮并返回应用程序我按下按钮时启动“onResume()”

4 个答案:

答案 0 :(得分:1)

您可以通过将android:clearTaskOnLaunch属性设置为主要活动的<activity>标记(开始活动)来实现此目的

如果您只想在活动中按“退出”按钮清除任务,则可以在开始主页活动之前在该活动中呼叫finish()。但是,只有在第二个活动中退出时才适用。

答案 1 :(得分:1)

我认为问题在于您创建Intent的方式。可能这两个陈述

intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

让Android认为您的MainActivity是从启动器启动的,因此会恢复完整的导航堆栈,您会看到最新的启动活动。我建议删除这些行。

以下启动MainActivity的代码应该可以正常运行:

Intent intent=new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

答案 2 :(得分:0)

在第一项活动(主要活动)

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        moveTaskToBack(true);
        android.os.Process.killProcess(android.os.Process.myPid());
    }

和按钮“退出”添加下一个代码

    Intent goIntent = new Intent(getApplicationContext(),
                [activity].class);
        goIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(goIntent);

答案 3 :(得分:0)

你可以尝试

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);