如何在BlackBerry中使用UiApplication.activate()
我想在BlackBerry中使用如何在BlackBerry中使用UiApplication.activate(),blackberry,Blackberry,我想在BlackBerry中使用UiApplication.activate()方法。在Android中,我们使用onResume()方法;那么我们如何在BlackBerry中使用UiApplication.activate()方法呢 没有那么多可用的信息 关于activate(),没有什么真正需要知道的。如果你看一下文档 它说: “系统将此应用程序置于前台时调用此方法。” 因此,如果您的应用程序已被推送到后台(例如,通过电话),然后用户单击您的图标再次查看您的应用程序,则将调用activat
UiApplication.activate()
方法。在Android中,我们使用onResume()
方法;那么我们如何在BlackBerry中使用UiApplication.activate()
方法呢
没有那么多可用的信息 关于activate(),没有什么真正需要知道的。如果你看一下文档 它说: “系统将此应用程序置于前台时调用此方法。” 因此,如果您的应用程序已被推送到后台(例如,通过电话),然后用户单击您的图标再次查看您的应用程序,则将调用activate()。相反,当系统将应用程序推送到后台时(例如,当接到电话时),将调用deactivate() 请注意,在应用程序首次启动时也会调用activate() 真正的问题是,在onResume()中,您需要在BlackBerry代码中复制哪些内容。如果你能告诉我们这一点,我们可能会建议什么是实现你想要的结果的最佳方式 更新 鉴于您似乎正在使用onResume()更新Ui,不幸的是,没有一种简单的方法可以对整个应用程序进行更新。您将使用的方法实际上取决于正在更新的内容 但请注意,大多数字段在更改其内容时会自动更新。举一个简单的例子,如果您有一个包含数据的EditField,并且您使用 .setText(“新数据”); 方法,这将自动为您在屏幕上重新绘制该字段 我希望您有一个从数据库或数据源填充的屏幕,并在activate()中刷新此数据。因此,您必须遍历屏幕的每个字段,并使用关联的集合。。。方法更新内容 这是有点问题的,因为activate是为应用程序而不是屏幕调用的,而且堆栈上可能有多个屏幕,您确实需要更新所有屏幕。有多种方法可以做到这一点,例如,您的屏幕注册自己以进行更新,或者您的activate()方法在显示堆栈中搜索屏幕 但一个简单的方法可能是使用每个屏幕的“onExposed()”方法自动更新内容。这个方法在屏幕被隐藏然后显示的任何时候都会被调用,这正是应用程序被前景化后会发生的事情。当屏幕被另一个屏幕隐藏时,甚至当用户按下菜单键时,也会发生这种情况。因此,如果更新非常耗时(例如需要数据库查找),您可能不希望每次调用onExposed()时都进行更新,而是尝试限制更新频率 这种“onExposed()”方法不需要单独更新每个字段的内容,但它可能会使实现更容易 进一步更新 注意Nate的回答,Nate有Android和BB的经验,因此可以更好地解决您的问题 但是,如果您知道屏幕已经更新,因此您刚刚处理了一个与屏幕内容相关的网络请求,那么您应该逐个检查每个字段,在此时“设置”更新的值,不要担心使用OneExposed()。一种适应这种情况的设计方法是将屏幕结构与屏幕总体分开,这样您就可以从多个位置调用“总体”(请注意,更新字段时您确实需要处于事件线程上)
但是在这种情况下,您可能会发现创建一个新屏幕并按下该屏幕并弹出旧屏幕(具有旧值)更容易、更快 关于activate(),没有什么真正需要知道的。如果你看一下文档 它说: “系统将此应用程序置于前台时调用此方法。” 因此,如果您的应用程序已被推送到后台(例如,通过电话),然后用户单击您的图标再次查看您的应用程序,则将调用activate()。相反,当系统将应用程序推送到后台时(例如,当接到电话时),将调用deactivate() 请注意,在应用程序首次启动时也会调用activate() 真正的问题是,在onResume()中,您需要在BlackBerry代码中复制哪些内容。如果你能告诉我们这一点,我们可能会建议什么是实现你想要的结果的最佳方式 更新 鉴于您似乎正在使用onResume()更新Ui,不幸的是,没有一种简单的方法可以对整个应用程序进行更新。您将使用的方法实际上取决于正在更新的内容 但请注意,大多数字段在更改其内容时会自动更新。举一个简单的例子,如果您有一个包含数据的EditField,并且您使用 .setText(“新数据”); 方法,这将自动为您在屏幕上重新绘制该字段 我希望您有一个从数据库或数据源填充的屏幕,并在activate()中刷新此数据。因此,您必须遍历屏幕的每个字段,并使用关联的集合。。。方法更新内容 这是有点问题的,因为activate是为应用程序而不是屏幕调用的,而且堆栈上可能有多个屏幕,您确实需要更新所有屏幕。有多种方法可以做到这一点,例如,您的屏幕注册自己以进行更新,或者您的activate()方法在显示堆栈中搜索屏幕 但也可能是一个s