Android有一个包含3个片段的演示者

问题描述 投票:3回答:1

这更像是Android中MVP的概念性问题。我有3个片段,我试图为所有3个片段使用1个演示者。

我对这些事情更加怀疑 -

a)在onCreate()中创建一个新的presenter实例,我喜欢这个 -

presenter = new MyPresenter();
presenter.setView(this);

因此打开3个片段将创建3个演示者实例。这是个好主意吗?

b)1个片段的视图必须在第2和第3个片段中覆盖,尽管它们没有被使用,它们只是空方法,使我的代码长度为第2个和第3个片段。这是一个好主意吗?

c)虽然我在片段onDestory()presenter.onDestroy()做,但主持人将做super.onDestory()。我拥有的BasePresenter会破坏这样的观点 -

public void onDestroy() {
    this.view = null;
}

虽然视图被破坏了,但收集的预先垃圾是什么?因为下一个片段将创建演示者的新实例,我不希望运行多个实例。

java android mvp
1个回答
2
投票

因此打开3个片段将创建3个演示者实例。这是个好主意吗?

你应该这样做,每个片段的每个presenter实例。但我建议您为特定片段创建特定的演示者。它清晰,易于改进和维护。

必须在第2和第3个片段中覆盖1个片段的视图,尽管它们未被使用,它们只是空方法,使得我的代码长度为第2个和第3个片段。这是一个好主意吗?

当然不,那是不好的代码。

虽然视图被破坏了,但收集的预先垃圾是什么?因为下一个片段将创建演示者的新实例,我不希望运行多个实例。

它将由GC清洁。您在每次onCreate()调用时都创建了新的presenter实例,因此这里有三个实例。它将是干净的,因为它只与特定的一个片段相关联。

希望它有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.