【发布时间】:2013-12-18 15:57:41
【问题描述】:
首先,我要声明我已经为这个问题寻找解决方案三天了,这可能意味着我没有提出正确的问题或没有使用好的方法。如果有的话,请指导我正确的方向。
这是场景:我有一个Activity 和一个绑定Service。 Service 保存一些数据并在必要时对其进行处理,同时发布带有一些信息的持久(持续)通知。 Activity 在一个ViewPager 内有三个Fragments,显示Service 处理的数据。
Fragments 是一个 List Fragment,显示可用的活动数据条目,一个 Details Fragment,显示每个数据的详细信息,以及一个 Parameters片段,用户可以在其中修改数据的处理方式。
[Service] ([Activity] -> [ViewPager([List], [Details], [Parameters])])
一切正常。我的Activity 绑定到Service,之后创建ViewPager,然后Fragments 通过Interface 获取信息。
有趣的部分来了……屏幕旋转!
由于Service 异步绑定,当用户旋转屏幕时,Fragments 不再拥有数据,因为Activity 正在绑定服务,而它们已经存在并且由于ViewPager 而没有重新创建.
我一直在试图解决这个问题,但似乎我没有解决它的知识。我尝试过对片段进行静态引用,在服务反弹之前设置它们,但我无法获得稳定的解决方案。
我会在清单中使用android:configChanges,但每个方向都有不同的布局。
再次,如果我使用了不好的方法,请指导我!
【问题讨论】:
-
您可以尝试使用无头片段来保存您的数据并将您的服务绑定到。 Here 是一个很好的教程。它讨论了将无头片段与异步任务一起使用,但同样适用于您的案例。这是处理屏幕旋转的推荐方式。
-
正如@Kuffs 所建议的那样,刚刚做了,它完美地工作!不能感谢你们! :)
-
无论如何你都可以展示你的代码,我正在试图弄清楚如何从一个活动的视图页面中实现一个片段的接口
-
@Lion789 很抱歉我迟到了。如果您仍然需要它,我可以通过 Dropbox 将文件发送给您。告诉我。
标签: android service android-viewpager orientation fragment