2011-08-10 152 views
3

我正在致力於查找註冊到設備的電子郵件地址的BlackBerry應用程序。我正在使用此代碼來完成:BlackBerry查找電子郵件地址

  Session session = Session.getDefaultInstance(); 
     System.out.println("############### got session ################"); 
     if (session != null) { 
      Store store = session.getStore(); 
      System.out.println("################ got store ######################"); 
      ServiceConfiguration serviceConfig = store.getServiceConfiguration(); 
      System.out.println("################ got config #####################"); 
      email = serviceConfig.getEmailAddress(); 
     } 

這對於已經註冊了電子郵件地址的設備來說是完美的。但是如果該設備沒有註冊到該行的地址:

email = serviceConfig.getEmailAddress(); 

永不退貨。所以我的整個應用程序無限期地停頓。解決這個問題的最好方法是什麼?我的第一個想法是設置一個計時器任務,將電子郵件字符串設置爲一些默認值,例如1或2秒後的「無地址註冊」。有沒有更好的方式來通知除了應用程序之外沒有電子郵件存在,只是停滯不前,什麼都不做?

回答

4

事實證明,如果沒有註冊電子郵件,serviceConfig.getEmailAddress();會引發異常。 BlackBerry文檔中沒有提到這一點。這也很奇怪,因爲如果你沒有捕獲到這個異常,那麼這個方法永遠不會返回,你的應用程序將無限期失效。但要解決問題,只需使用try/catch將該呼叫包圍並在catch塊中將電子郵件設置爲默認值即可。

如果實際記錄正確,會節省很多時間。我希望在這裏發佈答案可以幫助人們避免追查那些沒有證件的東西。

相關問題