Android 有没有办法使用Robotium清除默认共享首选项?

Android 有没有办法使用Robotium清除默认共享首选项?,android,sharedpreferences,robotium,Android,Sharedpreferences,Robotium,我的应用程序使用首选项管理器。GetDefaultSharedReferences(getBaseContext()) 然后设置两个首选项值。在运行测试时,我希望清除这些值并从已知状态开始。是否有任何方法可以在设置功能中设置或初始化默认共享首选项?您需要的代码如下: Context context = instrumentation.getTargetContext(); PreferenceManager.getDefaultSharedPreferences(context).edit().

我的应用程序使用首选项管理器。GetDefaultSharedReferences(getBaseContext())


然后设置两个首选项值。在运行测试时,我希望清除这些值并从已知状态开始。是否有任何方法可以在
设置
功能中设置或初始化默认共享首选项?

您需要的代码如下:

Context context = instrumentation.getTargetContext();
PreferenceManager.getDefaultSharedPreferences(context).edit().clear().commit();
如果您的应用程序使用任何不同的共享首选项,您可能也需要通过以下方式清除它们:

context.getSharedPreferences("XXX", Context.MODE_PRIVATE).edit().clear().commit();

您需要的代码如下所示:

Context context = instrumentation.getTargetContext();
PreferenceManager.getDefaultSharedPreferences(context).edit().clear().commit();
如果您的应用程序使用任何不同的共享首选项,您可能也需要通过以下方式清除它们:

context.getSharedPreferences("XXX", Context.MODE_PRIVATE).edit().clear().commit();

测试这一点。我以前确实试过,但不确定它是否正常工作。清除内容可以工作,但无法初始化共享首选项。preferences.edit().putString()在这里起作用吗?您可以从您自己的应用程序中执行所有可以执行的操作,因为它们在同一进程中运行(假设您获得的是目标上下文,而不是您自己的)。不过,您可能需要考虑初始化问题。这是因为您的应用程序处于特定状态,还是因为您的应用程序需要共享首选项?是的。我想检查两种情况。在某些情况下,需要设置SharedReference变量,而在其他情况下,则应清除这些变量。我尝试了测试类中的putString(),但是preferences.getString()在这之后返回一个空值。正在测试。我以前确实试过,但不确定它是否正常工作。清除内容可以工作,但无法初始化共享首选项。preferences.edit().putString()在这里起作用吗?您可以从您自己的应用程序中执行所有可以执行的操作,因为它们在同一进程中运行(假设您获得的是目标上下文,而不是您自己的)。不过,您可能需要考虑初始化问题。这是因为您的应用程序处于特定状态,还是因为您的应用程序需要共享首选项?是的。我想检查两种情况。在某些情况下,需要设置SharedReference变量,而在其他情况下,则应清除这些变量。我尝试了测试类中的putString(),但preferences.getString()在这之后返回null。