Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.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 在保留的片段之间进行通信的好方法_Android_Android Fragments_Headless Fragments - Fatal编程技术网

Android 在保留的片段之间进行通信的好方法

Android 在保留的片段之间进行通信的好方法,android,android-fragments,headless-fragments,Android,Android Fragments,Headless Fragments,我的活动中保留了几个片段(最多3个),它们负责使用asynkTask(从现在开始smallRetainedFragments)生成不同的小任务。文档中说,在活动中集中片段之间的通信是一种很好的做法,因此片段不需要知道是否有另一个片段或活动最终会响应它们的需求,因此从其他片段(正常=>带视图)使用它们来集中活动中的通信,例如,按下按钮,效果很好 现在我需要制作另一个retain片段,一个执行长时间大任务的片段(从现在开始newRetainedFragment),它需要与小的retainedfrag

我的活动中保留了几个片段(最多3个),它们负责使用asynkTask(从现在开始smallRetainedFragments)生成不同的小任务。文档中说,在活动中集中片段之间的通信是一种很好的做法,因此片段不需要知道是否有另一个片段或活动最终会响应它们的需求,因此从其他片段(正常=>带视图)使用它们来集中活动中的通信,例如,按下按钮,效果很好

现在我需要制作另一个retain片段,一个执行长时间大任务的片段(从现在开始newRetainedFragment),它需要与小的retainedfragment交互

我曾尝试在活动中集中交流,如果我不旋转屏幕,效果会很好,但如果我旋转屏幕,有时对活动的新保留片段引用无效(在旋转过程中,由于活动的重新创建)而且它也不能和小部分人沟通,提出工作申请

所以我很清楚如何传递片段,但在保留片段之间进行通信时遇到了一些问题


提前感谢。

要将片段与其他片段进行通信,必须使用侦听器。查看此文档了解其工作原理,在旋转屏幕的情况下,您需要使用onSaveInstanceState,然后使用onRestoreInstanceState,有关这些选项,请查看此文档您的链接以了解使用侦听器与2个(或更多)片段通信的推荐方式。但在我的例子中,我的片段是保留片段,因此它们“独立于”活动lyfecicle,因此在旋转期间,活动(旋转前)被销毁或销毁,并且在旋转后创建一个新活动。片段上的onAttach方法更新侦听器,但同时也可能是没有有效侦听器的时候,保留片段可能需要它,因为它正在后台处理数据,并且需要其他保留片段的协作。