gpt4 book ai didi

android - 在 Activity 开始之前访问它

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:55:39 25 4
gpt4 key购买 nike

我正在使用 InstrumentationTestCase 类来对 Activity 中的某些内容进行单元测试。

在此 Activity 启动之前,我需要能够检查 SharedPreferences 的内容并对其进行编辑。

我不能使用 setUp 方法创建 Activity 并访问它的 SharedPreferences 对象来编辑它,然后在完成 setUp 方法之前关闭该 Activity ,因为它显然正在锁定测试处理。

在测试中启动 Activity 后,我也无法访问 SharedPreferences,因为一旦启动 Activity ,它就会更改 SharedPreferences 对象并根据它进行操作,然后我才有机会获得它的引用。

显然,我之前也无法访问 SharedPreferences,因为我没有 Activity 对象……而且一旦访问,它就已经在执行代码并启动了……

所以,我的问题是,在我通过 Intent 实际创建 Activity 之前,是否有任何方法可以访问此 Activity 的 SharedPreferences(以及任何其他 Activity 信息)?

我无法将它更改为 ActivityInstrumentationTestCase2,因为我的测试在其过程中使用了第二个 Activity ,所以我不能只更改为此类并使用它的 setUp() 方法来访问 SharedPreferences。

最佳答案

我找到了最好的简单方法来仅通过检测来执行此操作,而无需编辑应用程序的体系结构或任何访问属性。

我是通过这个实现的:

Instrumentation instrumentation = getInstrumentation();
instrumentation.getTargetContext().getSharedPreferences(..);

这样我就可以在仪器启动任何 Activity 之前访问 SharedPreferences。

无论如何,感谢您提供的所有帮助、提示和其他选择。

关于android - 在 Activity 开始之前访问它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4446752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com