我有一个带有自定义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_TASK
和FLAG_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);