我有几个活动,包括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实例。请给我一些建议
答案 0 :(得分:0)
在代码中finish();
之后放置startActivity(intent);
,并为android:lauchMode="standard"
文件中的 TimeLineActivity 添加manifest
。然后activity
将不会堆叠。