2010-11-09 64 views

回答

2

当然,如果是你的LocationListener - onLocationChanged()是一种公开的方法;只需使用手边的任何位置对象(可能让您的位置监听器将其缓存在某处),或使用LocationManagergetLastKnownLocation方法抓取从特定提供商看到的最后一个位置,然后用onLocationChanged()调用该位置对象)。

+0

这看起来不错,但由于该类在另一个类中,我想从别处调用它,所以我选择将代码移到超类的公共函数中,然后从监听器调用它。谢谢! – cambraca 2010-11-09 05:31:31

1

您可以使用LocationManagersetTestProviderLocation方法模拟新位置,并在需要时调用已注册监听器的onLocationChanged方法。您需要检查reference page。你也有一个例子here

+0

我真的不想做模拟位置。我想在应用程序中发生其他事情时触发侦听器中的代码。 – cambraca 2010-11-09 04:50:08

+0

如果要执行与位置更改完全无关的代码,则不应在位置侦听器中包含该代码。我的回答说明了如何在没有任何实际位置变化的情况下手动触发注册的侦听器 – mgv 2010-11-09 04:52:34

+0

嗯,你可能是对的。我只是认为可能有这样做的方式(因为它不完全与位置变化无关) – cambraca 2010-11-09 04:55:02