代码之家  ›  专栏  ›  技术社区  ›  Ben Clark-Robinson

uiapplication.activate()方法在一些黑莓黑体上称为post-app-install。为什么?

  •  2
  • Ben Clark-Robinson  · 技术社区  · 15 年前

    我在使用uiapplication.activate()方法启动应用程序后安装(ota安装)时遇到问题。

    我有:

    public class PlayerApp extends UiApplication
    
        public PlayerApp() {
           new Thread(this).start();
        }
    
        public void run() { ... }
    
        public void activate() { ... }
    

    我在使用activate()方法时遇到问题。它是提前启动,它是启动后——在不应该启动时安装(我认为当用户从菜单中选择应用程序时应该启动)。更糟的是,这不是所有的黑体字。bb本来是要请求重新启动的,但是activate()在这一点之前就已经启动了,并且对用户界面起着地狱般的作用。

    问题。activate()何时真正启动?activate()应该在安装后启动吗?有没有办法处理activate()启动后安装?这是RIM API中的一个bug吗?

    注意:问题出现在bb bold 4.6.0.144/4.0.0.143上,到目前为止我已经 能够在4.6.0.282/4.0.0.235上复制该问题。

    编辑:安装流程:ota链接>下载>安装>'是'到'信任应用程序状态'>自动启动应用程序>故障从这里开始。

    1 回复  |  直到 15 年前
        1
  •  4
  •   Richard    15 年前

    根据api docs activate():

    系统将此应用程序置于前台时调用此方法。默认情况下,此方法不执行任何操作。重写此方法以在被带到前台时执行其他处理。

    因此,我怀疑在ota安装之后,用户可以选择运行应用程序,当被接受时,它会将应用程序带到前台。如果看不到启动代码,很难确定。如果您的应用程序配置为自动启动,那么安装后它将“自动启动”。如果这会使UI被实例化并带到前台,那么此时将调用activate。