2011-11-25 26 views
1

我正在創建一個在手機重新啓動時自動啓動的應用程序。我想在手機完成重啓時運行一些事件。 UiApp甚至在設備完成復位之前運行,因爲我將應用程序配置爲自動啓動應用程序。哪個事件告訴您設備已成功啓動

我應該聽什麼事件,並且在手機完成重啓時開始,而不是在兩者之間?

感謝

+0

在重新啓動完成之前運行時遇到了什麼問題? –

+0

@MichaelDonohue從SD卡中讀取文件 –

+1

您是否嘗試過使用文件系統偵聽程序來找出sdcard文件系統準備好的時間? –

回答

2

有可能知道,如果系統在啓動時使用:

ApplicationManager.isStartup() 

您需要查詢該使用計時器,直到它返回false。但是必須牢記的是,這意味着操作系統已經啓動並且系統能夠運行應用程序。這並不意味着您的應用程序運行的整個環境已完全建立。例如(如邁克爾指出的)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) 
     { 

     } 
    } 

} 
相關問題