首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含onCreate、FragmentManagerState和ViewHierarchyState的savedInstanceState

包含onCreate、FragmentManagerState和ViewHierarchyState的savedInstanceState
EN

Stack Overflow用户
提问于 2015-04-24 18:39:08
回答 1查看 1.1K关注 0票数 4

使用Robolectric,我们如何测试一个活动的重现性,该活动将模拟在响应回退按钮时重新创建的情况(在该活动因内存压力被安卓破坏后)?

在设备上,再现这种活动娱乐的步骤是:

  • 在开发人员设置中打开“不要保留活动”。
  • 导航到应用程序中的活动
  • 使用通知栏显示活动顶部的Settings活动或其他活动,这将导致您的活动被Android破坏,以模拟RAM压力
  • 使用后退按钮关闭重叠(设置)活动

由于最后一步使用Back按钮,您的活动将得到一个onCreate(),它包含一个非空saveInstanceState,其中包含一个包含键为"android:viewHierarchyState“的Bundle实例,如果使用了片段,则会得到一个FragmentManagerState实例,其中键为”android:support:saveInstanceState“。

我们怎样才能在Robolectric中模拟这一点呢?我们假设我们可以用ActivityController.create( Bundle )来完成这个任务,如果我们能够适当地设置这个包。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-04-24 19:22:25

我的两个人搞清楚了!使用saveInstanceState()请求Android填充所需的包:

代码语言:javascript
复制
    ActivityController<SearchActivity> controller = ActivityController.of(SearchActivity.class);
    controller.create().start().resume().visible().get();
    Bundle outState = new Bundle();
    controller.pause().saveInstanceState(outState).stop();

    controller = ActivityController.of(SearchActivity.class).create(outState).start().visible();
    subject = controller.get();

    // the create(Bundle) method was just called with the complete view hierarchy and fragment information
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29855096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档