显示屏幕时这两种方法的区别?

时间:2012-03-30 07:52:57

标签: blackberry java-me

在BlackBerry开发中(我说的是BB OS 6+),如果我想在点击按钮时显示另一个屏幕,我看到我可以使用以下任何一种方法来执行此操作:

getScreen().getUiEngine().pushScreen(new MyScreen());

UiApplication.getUiApplication.pushScreen(new MyScreen());

上述两种方法都成功显示了新的MyScreen屏幕。但这两者有什么区别?或者它们是一样的吗?

注意:我特别要问的是它们的行为是否不同(在资源上)以及它们是否以相同的方式处理方法调用。他们对最终用户有任何明显的影响吗?

感谢。

1 个答案:

答案 0 :(得分:4)

第一种方法会将屏幕推到与“拥有”包含Field字段的应用程序相关联的堆栈上(我假设您正在调用Field.getScreen()...)。

第二种方法将屏幕推送到“拥有”执行UiApplication.getUiApplication()的线程的应用程序的堆栈......

除非您正在通过ApplicationMenus或某些侦听器进行一些复杂的后台处理或与系统应用程序交互。

主要影响是在每种情况下可访问哪些资源。如果您使用应用程序范围的单例,这些差异最终将影响您的程序。这是RIM建议使用RuntimeStore或PersistentStore使用系统范围的单例的一个原因。

我的经验是开发一个特定的程序我的帮助:http://www.hrbuckley.net/2012/03/blackberrry-singletons-application.html