0

我有一个活动的 ActivityInstrumentationTestCase2。

它,我测试在 onStop() 方法中通过 BACK 键退出 Activity 时保存对设置的更改。

在我的测试中,我启动活动,修改设置,然后使用 finish() 停止活动。我等待活动结束,然后检查保存在 SharedPreferences 中的设置。

在带有 Android 4.3 的 Nexus 7 中,此测试永远不会失败。

在带有 Android 4.1.2 的三星 S3 中,它总是失败。

我尝试使用不同的上下文,并且在 SharedPreferences.Editor 中使用 commit() 而不是 apply(),但行为没有区别。

有任何想法吗?

4

1 回答 1

0

而不是以以下方式结束活动:

活动.finish();

你应该结束它:

getInstrumentation().callActivityOnStop(活动);

我怀疑可能有更好的方法来结束活动并等待它退出,就像按下 Back 键并调用 onStop() 一样。


该“修复”修复了失败的案例,但导致其他案例现在失败。它们似乎只有在我使用 activity.finish() 时才有效。

于 2013-11-14T21:47:44.203 回答