我正在创建一个在手机重启时自动启动的应用程序。我想在手机完成重启时运行一些事件。 UiApp甚至在设备完成重置之前就已运行,因为我将应用程序配置为自动启动应用程序。
我应该听哪个事件,并且在手机完成重启时开始,而不是在两者之间?
由于
答案 0 :(得分:2)
可以通过使用以下方式了解系统是否处于启动状态:
ApplicationManager.isStartup()
您需要使用计时器轮询它,直到它返回false。但是必须记住,这意味着操作系统已启动,系统能够运行应用程序。这并不意味着您的应用程序运行的整个环境已完全设置。例如(如Michael所述)可能尚未安装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)
{
}
}
}