我是GWT的新手,最近我在我的代码中添加了Actvivities,Places和ActivityMappers。每个区域都有一个ActivityManager-ActivityMapper。像标题或菜单这样的区域不会发生很大变化,因此我必须在ActivityMapper中编写大量样板代码,以便每次都使用不同的构造函数加载相同的Presenter。对于每个可能的位置,我必须为Presenter编写另一个构造函数,以便获取ActivityMapper给出的实例。有什么方法可以做到这一点吗?此外,每次搬到新地方时,我都不满意创建新Presenter的想法(即使您要加载同一个Presenter)。事实上,我有一个很大的问题,因为我的活动永远不会死,他们继续接收事件。
答案 0 :(得分:0)
当ActivityMapper
返回完全相同的Activity
实例(引用相等,即==
,而不是equals()
)之前,那么活动不会重新启动,并且未触及区域。对于那些不经常更改的区域(例如标题或菜单,或主 - 详细设置中的主区域),这是一种深思熟虑的优化。这也是CachingActivityMapper
(和FilteredActivityMapper
的原因,专门用于在主 - 详细设置中与CachingActivityMapper
一起使用)
在您的情况下,您似乎正在向自己施加规则,使您很难让您利用此优化:您将当前地点传递给你的活动的构造函数,没有明显的原因。