2009-10-02 70 views
1

我需要将GPS功能添加到我写的现有黑莓应用程序。我编写了一个名为CurrentLocation的独立类,并且包含一种方法,通过将黑莓GPS与谷歌的反向地理编码Web服务结合使用来设置我关心的各种位置变量。一切都运行得很好,也就是说,直到我尝试在我的主应用程序中实例化我的新类。黑莓JDE GPS getLocation()LocationException

无论我做什么,我都会得到LocationException! .getLocation()不起作用!

它真的让我感到困惑,因为如果我在一个测试Hello World应用程序中实例化我的类,它工作得很好。

是否有限制你可以实例化类的地方?我以前写过的课程中没有遇到任何问题。在这种情况下,我在侦听器中实例化我的CurrentLocation类(所以用户只需在他们想要的时候进行冗长的gps和web调用)。我试着在屏幕上实例化它。我已经试过了,只是在课堂上使用方法调用,但那也行不通。

有什么东西我完全在这里丢失?

http://pastie.org/639545

有到我正在做类的链接,

这里就是我“米试图从实例监听器。我在一个事件线程,因为我认为它可能帮助(但我得到同样的例外,我是否没有做到这一点)。

FieldChangeListener listenerGPS = new FieldChangeListener() { 
     public void fieldChanged(Field field, int context) { 
      UiApplication.getUiApplication().invokeLater(new Runnable() { 
       public void run() { 
        CurrentLocation loc = new CurrentLocation(); 
        if (loc != null){ 
         country = loc.getCountry(); 
         city = loc.getCity(); 
         state = loc.getState(); 
         road = loc.getRoad(); 
         zip = loc.getZip(); 
        } 
        } 

      }); 

     } 
    }; 

缺少什么我在这里?

+1

嗨!你有没有考虑接受你自己的答案? – 2009-10-30 14:07:49

+0

谢谢!我完全忘了 -。-;; – Jenny 2009-11-19 15:44:06

回答

2

好吧,我知道了。显然,你不能打电话g^eventThread中的etLocation()(不只是invokeLater,而是任何监听器)。所以现在我所做的是在事件之外的线索中获取坐标,并分别担心谷歌。