我有一个带有自定义DialogFragment的PreferenceActivity,用于清除应用程序数据,因此我希望在用户单击“是”时将其关闭,应用程序要么完全关闭(完成所有活动),要么只是告诉它进入InitialSetup活动,因此该应用程序可以重新设置。到目前为止,我还无法以任何方式做到这一点...
尝试过

            Intent intent = new Intent(context.getApplicationContext(), MySettings.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
            context.startActivity(intent);


但这仍然不能关闭后退堆栈中的所有活动...

我该怎么做?

最佳答案

您需要的是FLAG_ACTIVITY_CLEAR_TASKFLAG_ACTIVITY_NEW_TASK标志用于您的意图:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);


或者如前所述,Sartheris对11以下的Android API使用IntentCompat

Intent intent = IntentCompat.makeRestartActivityTask(new ComponentName(context, MySettings.class));
startActivity(intent);

07-28 03:24
查看更多