我正在尝试在我的应用程序中添加主题更改选项。我有一个主要活动叫做时间线。从那里用户可以转到主题更改活动可以更改主题。它更改主题更改活动的主题,但不更改时间线,即主活动。当我再次重新加载时间线活动时,我可以看到更改。
然后我添加以下代码以保存主题更改活动中的按钮以重新加载时间线活动
save.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
finish();
Intent i = new Intent(BackgroundChange.this, TimeLine.class);
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(i);
Intent k = new Intent(BackgroundChange.this,
SettingsActivity.class);
startActivity(k);
}
});
而且效果很好。
但是当我退出应用程序并重新开始时,我可以看到主题之前的时间线活动。
我使用以下代码退出应用程序
exit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
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_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
});
如果我再次退出,我可以看到更改的时间线。我想在退出应用程序时清除所有活动。退出后我无法保留任何以前的活动。现在我该怎么办?请给我一个建议..
在出口处,
exit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(getApplicationContext(),TimeLine.class); //This will finish all activities except TimeLine
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("exit", true);
startActivity(intent);
}
});
在时间轴的OnCreate中,
if(getIntent().getBooleanExtra("exit", false))
finish(); //This will finish your main activity
您可以将 noHistory="true" 用于清单文件中的活动
但是,如果你使用 this.finish(),它可以工作。删除所有意图,只使用"this.finish()"。当然是会工作。如果它不起作用,则在 finish() 之后使用 System.exit(0)。