0

我有几个活动,包括时间线活动。此活动在用户成功登录我的应用程序时开始。但是,我有一个用于更改应用程序主题的菜单。当我去更改应用程序主题时,由于下次使用,我没有完成时间轴活动。我更改了我的主题颜色和背景,并将更改保存到带有新主题的时间线活动。然后当我使用以下代码退出我的应用程序时

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // Ask the user if they want to quit

        new AlertDialog.Builder(this)
                .setIcon(android.R.drawable.ic_dialog_alert)
                .setTitle("")
                .setMessage("Do you want to exit")
                .setNegativeButton("No", null)
                .setPositiveButton("Yes",
                        new DialogInterface.OnClickListener() {
                            // @Override
                            public void onClick(DialogInterface dialog,
                                    int which) {
                                finish();

                                Intent intent = new Intent(
                                        Intent.ACTION_MAIN);
                                intent.addCategory(Intent.CATEGORY_HOME);
                                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                                startActivity(intent);

                            }
                        }).show();
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

但是当我再次启动我的应用程序时,我看到了主题更改之前的时间线活动。我认为 Timetine 活动实例保留在堆栈中,尽管我从 ThemeChange Activity 开始新的 Timeline 活动。

活动流程

时间线(带有黑色主题)--> ThemeChange(通过按 ThemechangeMenu)--> 更改主题和保存按钮单击--> 重新开始时间线(成功使用新主题)--> 使用 Avobe 代码退出我的应用程序--> 重新开始我的应用程序 --> 出现时间线(使用 Balck 主题而不是更改的主题)

当使用保存按钮单击侦听器从 Themechange 活动运行新的 Timeline 实例时,如何从堆栈中销毁 TimeLine 的前一个实例?

4

1 回答 1

0

在您的代码中放置finish();after并在文件中添加TimeLineActivity。然后将不在堆栈中。startActivity(intent);android:lauchMode="standard"manifestactivity

于 2013-01-24T06:45:47.223 回答