【问题标题】:Which event tells you that the device is successfully started哪个事件告诉你设备启动成功
【发布时间】:2011-11-26 10:51:43
【问题描述】:

我正在制作一个在手机重启时自动启动的应用程序。我想在手机完成重启时运行一些事件。 UiApp 甚至在设备完成重置之前就在运行,因为我将应用程序配置为自动启动应用程序。

我还应该听什么事件,并且在手机完成重启时开始,而不是在两者之间?

谢谢

【问题讨论】:

  • 您在重启完成前运行遇到了什么问题?
  • @MichaelDonohue 从 sdCard 读取文件
  • 您是否尝试过使用文件系统侦听器来确定 sdcard 文件系统何时准备就绪?

标签: blackberry java-me blackberry-jde


【解决方案1】:

可以通过以下方式知道系统是否正在启动:

ApplicationManager.isStartup()

您需要使用计时器来轮询它,直到它返回 false。但是必须记住,这意味着操作系统已经启动并且系统能够运行应用程序。这并不意味着您的应用程序运行的整个环境已完全设置。例如(正如 Michael 所指出的)microSD 卡可能尚未安装,网络连接可能尚未建立,或者您的应用程序可能依赖的某些其他服务尚不可用。在您开始使用您的应用程序之前,您需要验证它们是否可用。

你需要采取的方法是:

  1. 如果 isStartup 返回 false 则轮询(系统未处于启动阶段)
  2. 实现 FileSystemListener 以检查 microSD 卡是否已挂载。

请注意,microSD 卡的挂载名称是“SDCard”。

class FileSystemListenerImpl implements FileSystemListener
 {
      final static String SDCARD_NAME ="SDCard/";


    public FileSystemListenerImpl(  )
    {

    }

    public void rootChanged( int state, String rootName )
    {
        if( state ==  FileSystemListener.ROOT_ADDED)
        {

            if( SDCARD_NAME.equals(rootName))
            {
                _isMicroSDReady=true;
                scheduleApplicationStart();
                removeFileSystemListener(this);
            }
        }
        else if( state == FileSystemListener.ROOT_REMOVED)
        {

        }
    }

 }

【讨论】:

    猜你喜欢
    • 2015-12-29
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多