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