首先,我知道使用MVP模式有不同的实现方式,但在我的脑海中,只要你清楚地定义了抽象层并让它们扮演指定的角色,那么如何实现此模式就是开放的。我一直在多个应用程序中实施此模式,其中只有一个Activity。现在,我开始了一个新项目,其中包括多个Activity和附加的Fragments,包括嵌套的Fragments(ViewPager)。
我现在正在尝试将MVP转换为此项目,并遇到了概念上的障碍,希望得到一些指导和见解。
到目前为止,我已经创建了上述结构,并开始进行视图和Presenter之间1:1的关系(无论是Activity还是Fragment)。我认为这是可以的,但是例如,如果我从Activity View发送请求执行某些操作并返回结果给Activity View的Presenter,那么我该如何传播结果,即更新当前处于未暂停或停止状态的所有其他Activities/Fragments?在这种情况下,我觉得应该有一个中央Presenter来更新所有必要的Activity和Fragment Views,但是我不确定如何去做。
目前,每当创建每个Activity和Fragment时,它都会创建一个Presenter类的新实例,将自身作为引用传递(Activity和Fragments各自实现其自己的接口),Presenter将其存储为WeakReference,并在返回结果时调用相关接口方法。
根据文档,每当Fragments想要相互通信并与附加的Activity通信时,应使用回调接口。考虑到这一点,我是否应该有一个回调接口,由Activity实现并在Fragments请求某些内容时回调,因此本质上只有Activity需要一个Presenter和Model层,Fragments必须通过回调才能请求各种内容?
如果我的描述有点混乱,请见谅,希望这足够清楚,以便理解我想要实现什么,以及我是否在正确地思考...或者完全偏离了轨道!
我现在正在尝试将MVP转换为此项目,并遇到了概念上的障碍,希望得到一些指导和见解。
到目前为止,我已经创建了上述结构,并开始进行视图和Presenter之间1:1的关系(无论是Activity还是Fragment)。我认为这是可以的,但是例如,如果我从Activity View发送请求执行某些操作并返回结果给Activity View的Presenter,那么我该如何传播结果,即更新当前处于未暂停或停止状态的所有其他Activities/Fragments?在这种情况下,我觉得应该有一个中央Presenter来更新所有必要的Activity和Fragment Views,但是我不确定如何去做。
目前,每当创建每个Activity和Fragment时,它都会创建一个Presenter类的新实例,将自身作为引用传递(Activity和Fragments各自实现其自己的接口),Presenter将其存储为WeakReference,并在返回结果时调用相关接口方法。
根据文档,每当Fragments想要相互通信并与附加的Activity通信时,应使用回调接口。考虑到这一点,我是否应该有一个回调接口,由Activity实现并在Fragments请求某些内容时回调,因此本质上只有Activity需要一个Presenter和Model层,Fragments必须通过回调才能请求各种内容?
如果我的描述有点混乱,请见谅,希望这足够清楚,以便理解我想要实现什么,以及我是否在正确地思考...或者完全偏离了轨道!
HashMap<String, Object>
中的 headless retained fragment 中,并在 Activity 的配置更改时重新获取其引用。... 当我认为自己已经理解 Java 中的某些内容时,它似乎总是给我带来一些曲折!感谢你的建议。 - Mark