首先,我要声明我已经寻找了三天的问题解决方案,这可能意味着我不是在问正确的问题或者没有使用正确的方法。如果有任何疑问,请指导我正确方向。
以下是情景:我有一个Activity
和一个绑定的Service
。 Service
保存一些数据并根据需要进行处理,同时发布带有某些信息的持久(持续)通知。 Activity
有三个Fragments
在一个ViewPager
中显示Service
处理的数据。
Fragments
是:List Fragment,它显示可用的活动数据条目;Details Fragment,它显示每个数据的详细信息;以及Parameters Fragment,用户可以修改如何处理数据。
[Service] <-> ([Activity] -> [ViewPager([List], [Details], [Parameters])])
一切都运行得很好。我的Activity
绑定到Service
,ViewPager
在此之后创建,然后Fragments
通过Interface
获取信息。
现在来到有趣的部分...屏幕旋转!
由于Service
异步绑定,当用户旋转屏幕时,Fragments
不再具有数据,因为Activity
正在绑定服务,而它们已经存在且由于ViewPager
没有被重新创建。
我一直在尝试找到解决方案,但似乎我没有知识来解决它。我试图使Fragments
的静态引用,在服务重新绑定之前设置它们,但是我无法获得稳定的解决方案。
我会在清单中使用android:configChanges
,但每个方向都有不同的布局。
如果我的方法不好,请指导我!