我需要添加GPS功能到现有的黑莓应用程序,我已经编写。我编写了一个名为CurrentLocation的独立类,并包含了一个方法来设置我关心的各种位置变量,方法是将blackberry GPS与google的反向地理编码set服务结合使用。在我尝试在我的主应用程序中实例化我的新类之前,一切都运行得很好。
无论我做什么,我都会得到一个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();
}
}
});
}
};这里我漏掉了什么?
发布于 2009-10-02 17:11:55
好的,我知道了。显然,您不能在eventThread (不仅仅是invokeLater,而是任何侦听器)中调用getLocation()。所以现在我要做的是在事件外部的线程中获取坐标,并分别担心google。
https://stackoverflow.com/questions/1510426
复制相似问题