【发布时间】:2013-06-18 00:24:43
【问题描述】:
我目前正在编写一个应用程序,它每分钟(或其他指定的时间量)接收位置数据并将其发送到服务器。
我注意到的问题是: 当我使用连接到电源的应用程序时,它可以完美运行 - 以定义的间隔发送更新。 当我在电池上使用它时,它会随机发送更新。
对于我的应用程序,我使用计时器来指定更新间隔。此计时器在后台服务中运行。我在计时器中请求更新,并在收到位置时删除更新。 我的代码片段:
private class mainTask extends TimerTask
{
public void run()
{
toastHandler.sendEmptyMessage(0);
}
}
private final Handler toastHandler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
date = date.getInstance(); //used to set time of update.
if(!GPSupdating)
{
locationManager.requestLocationUpdates("gps", 0, 0, locationListenerGPS);
GPSupdating = true;
}
}
};
我的位置监听器:
LocationListener locationListenerGPS = new LocationListener()
{
public void onLocationChanged(Location updatedLocation)
{
myGPSLocation = updatedLocation;
haveLocationGPS = true;
locationManager.removeUpdates(locationListenerGPS);
GPSupdating = false;
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
你知道为什么这不能正常工作吗?
【问题讨论】:
-
我在后台运行
"TIMER"时遇到了同样的问题 "service" 直到今天我还没有得到任何理由......所以我使用了Alram ManagerTimer的地方,效果很好 -
感谢您的回答。您能否向我发送一些您使用警报管理器而不是计时器的示例代码?这会很有帮助。