如果创建一个AbstractActivity
子类,则必须定义以下方法:
@Override
public void start(AcceptsOneWidget panel, EventBus eventBus) {
// ...
}
这是否意味着相同的AbstractActivity
可以用不同的显示区域"启动"?有人能提供一个具体的例子来说明从用户体验(UX)的角度来看,这将如何发生吗?
换句话说,如果我能说someActivity.start(displayRegion1, eventBus)
,或者someActivity.start(displayRegion2, eventBus)
,那么对我来说,这意味着:
- 活动不一定与屏幕上的特定位置相关联,因此可用于处理(在这种情况下,它实际上做了什么?)来自屏幕任何部分的显示区域(
AcceptsOneWidget
impl);或 - 活动与特定位置相关联,但或多或少是一个"查看器"类型的构造,能够传递任何显示区域并显示其内容。
有人可以向我解释这种关系吗?提前感谢!
活动不(不应该)依赖于它的显示位置,因此它传递了一个表示该显示区域的AcceptsOnWidget
,它应该将自己(或其视图或其他)设置为该显示区域的小部件。
将显示活动的位置(即AcceptsOneWidget
参数的值)在ActivityManager
上定义setDisplay
:
ActivityManager
控制显示区域- 它询问给定
Place
的活动ActivityMapper
- 它
start
此活动将显示区域作为参数传递给它 - 活动准备就绪后,将在该显示区域中显示自身。