Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android测试SharedReferences在一个设备/操作系统版本上失败_Android_Testing - Fatal编程技术网

Android测试SharedReferences在一个设备/操作系统版本上失败

Android测试SharedReferences在一个设备/操作系统版本上失败,android,testing,Android,Testing,我有一个活动的ActivityInstrumentationTestCase2 在onStop()方法中,我测试通过BACK键退出活动时是否保存对设置的更改 在测试中,我启动活动,修改设置,然后使用finish()停止活动。 我等待活动结束,然后检查SharedReferences中保存的设置 在装有安卓4.3的Nexus7中,该测试从未失败过 在装有安卓4.1.2的三星S3中,它总是失败 我尝试过使用不同的上下文,并且在SharedReferences.Editor中使用了commit()而不

我有一个活动的ActivityInstrumentationTestCase2

在onStop()方法中,我测试通过BACK键退出活动时是否保存对设置的更改

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

在装有安卓4.3的Nexus7中,该测试从未失败过

在装有安卓4.1.2的三星S3中,它总是失败

我尝试过使用不同的上下文,并且在SharedReferences.Editor中使用了commit()而不是apply(),在行为上没有任何区别


有什么想法吗?

不要以以下方式结束活动:

activity.finish()

您应该以以下内容结束:

getInstrumentation().callActivityOnStop(活动)

我想可能有更好的方法来结束活动并等待它退出,就好像按下了后退键并调用了onStop()


这一“修复”已经修复了失败的案例,但也导致了其他案例的失败。 只有当我使用activity.finish()时,它们似乎才起作用