Robolectric onCreate with savedInstanceState包含ViewHierarchyState,FragmentManagerState

时间:2015-04-24 18:39:08

标签: android robolectric

使用Robolectric,我们如何测试一个活动的重新创建,该活动将模拟Android 重新创建活动以响应后退按钮的情况(在活动被Android销毁后用于RAM压力) )?

在设备上,重现此活动重新创建的步骤为:

  • 在开发者设置中启用“不要保留活动”
  • 导航到您应用中的某个活动
  • 使用通知栏在您的活动之上调出“设置”活动或其他活动,这会导致您的活动被Android销毁,作为RAM压力的模拟
  • 使用“后退”按钮关闭重叠(设置)活动

作为使用Back按钮的最后一步的结果,您的活动获得带有非null saveInstanceState的onCreate(),其中包含包含带有键“android:viewHierarchyState”的Bundle实例的信息,如果使用了片段, FragmentManagerState的一个实例,带有键“android:support:fragments”。

我们如何在Robolectric中模拟这个?如果我们可以适当地设置Bundle,我们假设我们可以使用ActivityController.create(Bundle)来做这个。

谢谢!

1 个答案:

答案 0 :(得分:1)

我的一对想出来了!使用saveInstanceState()要求Android填充您需要的包:

select * from ForgeRock where (SELECT min(name) from...) = 'OpenDJ';
select * from ForgeRock where (SELECT top 1 name from...) = 'OpenDJ';