【发布时间】:2016-04-28 02:00:47
【问题描述】:
在我的一些表单上,我在打开表单时使用 onShow() 方法注册了一个传感器侦听器。当我转到不同的表单时,我想取消注册这些听众。
我发现了 onShow() 方法可以在显示 Form 时执行任何我需要做的事情,但我没有看到 onHide() 方法或任何可用于 Form 自行清理的方法。我可以将清理代码放在导航命令中,但它们确实属于表单。有没有我忽略的方法可以使用?
【问题讨论】:
标签: codenameone
在我的一些表单上,我在打开表单时使用 onShow() 方法注册了一个传感器侦听器。当我转到不同的表单时,我想取消注册这些听众。
我发现了 onShow() 方法可以在显示 Form 时执行任何我需要做的事情,但我没有看到 onHide() 方法或任何可用于 Form 自行清理的方法。我可以将清理代码放在导航命令中,但它们确实属于表单。有没有我忽略的方法可以使用?
【问题讨论】:
标签: codenameone
通常您不需要知道退出表单,除非您处于可能是隐式导航的 GUI 构建器应用程序中。由于您总是调用newForm.show(),因此可以在那里完成退出所需的实现逻辑。
但是,您始终可以覆盖 deinitilize() 来执行此操作。请注意,当您显示Dialog 时可能会调用它,因此initComponent() 可能比onShow() 更好。
请注意,这只适用于显示Form 的视觉方面。您还需要在应用最小化时调用的 stop() 方法和在应用恢复时调用的 start() 方法中实现逻辑(都在应用的主类中)。
【讨论】:
deinitialize()/initComponent() 您也可以对每个组件执行这两项操作?