Java 如何在清除任务后返回到上一个活动?

Java 如何在清除任务后返回到上一个活动?,java,android,Java,Android,抱歉,如果标题不清楚,这里有一个深入的解释: 我正在应用程序的设置活动中,我可以选择更改应用程序的主题。显然,当我更改此选项时,我希望应用程序的整个主题立即更改。因此,我使用共享首选项ChangeListener的方法如下: @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.equals("theme_prefere

抱歉,如果标题不清楚,这里有一个深入的解释:

我正在应用程序的设置活动中,我可以选择更改应用程序的主题。显然,当我更改此选项时,我希望应用程序的整个主题立即更改。因此,我使用共享首选项ChangeListener的
方法如下:

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    if (key.equals("theme_preference")) {
        Intent refresh = new Intent(getApplicationContext(), SettingsActivity.class);
        refresh.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); //clears previous activities
        startActivity(refresh);
    }
}
如您所见,我添加了一些标志,这些标志将清除以前的活动,以便重新创建这些活动以更新其主题


“设置”活动会自行重新创建,但当我按下“向上”或“后退”按钮返回到上一个活动时,应用程序崩溃。为什么会崩溃?

这是启动一堆活动的方式:

TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
stackBuilder.addNextIntentWithParentStack(intent);
Intent nextIntent = ...;
stackBuilder.addNextIntent(nextIntent);
stackBuilder.startActivities();

您可以共享崩溃日志吗?日志中没有检测到崩溃。因此,我猜退出应用程序被计算机视为一种预期操作什么是
addnextint
?哦,等等,这是stackBuilder.addnextint。我现在正在尝试。第三行应该是
Intent.FLAG\u ACTIVITY\u CLEAR\u TASK
而不是
Intent.FLAG\u ACTIVITY\u CLEAR\u TASK