活动实例从堆栈中删除

时间:2013-01-24 06:41:09

标签: android android-intent android-activity

我有几个活动,包括TimeLine Activity.This活动开始时用户成功登录到我的应用程序。但是我有一个主题更改我的应用程序的菜单。当我去更改应用程序主题我没有完成时间轴活动的原因下次使用。 我将主题颜色和背景设置为chnage并保存更改,然后使用新主题进行时间轴活动。然后当我使用以下代码退出应用程序时

@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开始新的时间轴活动。

活动流程

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

当使用保存按钮单击侦听器从Themechange活动运行新的时间轴实例时,如何从堆栈中销毁之前的TimeLine实例。请给我一些建议

1 个答案:

答案 0 :(得分:0)

在代码中finish();之后放置startActivity(intent);,并为android:lauchMode="standard"文件中的 TimeLineActivity 添加manifest。然后activity将不会堆叠。