1

当我单击“退出”按钮时,我运行了“主程序”

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

4 回答 4

1

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

如果您只想在活动中按“退出”按钮时清除任务,您可以finish()在开始家庭活动之前调用该活动。但是,这仅适用于您在第二个活动中退出的情况。

于 2012-12-06T10:27:09.997 回答
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);
于 2012-12-06T11:57:37.913 回答
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);
于 2012-12-07T09:28:45.773 回答
0

你可以试试

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

于 2015-07-02T06:39:06.263 回答