2012-10-18 62 views
2

我正在開發一個應用程序,我想將SQL數據庫集成到其中。迄今爲止我的代碼工作正常。我使應用程序在啓動時自動運行,並立即檢查是否存在SDCard。如果存在,我將在SDCard上創建數據庫,如果不存在,我將在設備上創建它。知道設備何時完全打開

問題是,當應用程序自動運行時,它會在設備找到SDCard之前啓動,所以我總是無法檢測SDCard是否存在。

我應該使用什麼樣的聽衆才能知道設備已完全打開?

回答

5

SystemListener將完成這項工作。這是我通常這樣做的:

public class MyApp extends Application implements SystemListener { 

     public static void main(String[] args){ 
      MyApp app = new MyApp(); 
      if (ApplicationManager.getApplicationManager().inStartup()) { 
       app.addSystemListener(app); 
       //wait for powerUp callback 
      } else { 
       app.startup(); 
      } 
     } 

     public void powerUp() { 
      removeSystemListener(this); 
      startup();  
     } 

     private void startup(){ 
      //Perform initialization here, most typically show first screen and stuff. 
     } 

     // Remaining SystemListener callbacks not shown for brevity 
    } 
+0

這將不會完成這項工作,因爲即使在檢測到SDCard之前也會調用powerUp。任何其他方法?謝謝 –

+0

對不起,我忘記了SDCard的事情,並專注於啓動檢測。是的,您可以嘗試FileSystemListener(http://www.blackberry.com/developers/docs/7.0.0api/javax/microedition/io/file/FileSystemListener.html) –

+2

順便說一句,您應該通過FileSystemRegistry類註冊偵聽器。 –