我有一个IntentService,它应该获取用户位置,并根据它从Internet下载一些数据。我面临的问题是,很多时候,在调用onConnected()方法之前,服务已经完成。所以Location是null。它不会一直发生,但经常发生。
我可以以某种方式做到不同(如asynctask),但可以从活动(当用户按下按钮时)或使用AlarmManager(定期)调用IntentService。所以我不知道另一种方法。好吧,我可以创建一个首先获取位置的asynctask,然后启动IntentService。从AlarmManager调用Service时,执行不同的操作。但是我必须创建不同的代码,最后才能做同样的事情。
所以我的问题是,有没有办法解决它,保留IntentService?或者还有另一种更好的方法吗?
先谢谢。
Ps:我已经按照Android开发者的指南进行了操作:
https://developer.android.com/intl/es/training/location/retrieve-current.html
答案 0 :(得分:0)
嗨,我建议您使用的是...创建一个将更新当前位置的服务......然后用坐标为var收费......让我给你看一个例子
首先声明变量
public class MyService extends Service{
private LocationManager mLocationManager = null;
private static final int LOCATION_INTERVAL = 1000;
private static final float LOCATION_DISTANCE = 10f;
String sLat;
String sLong;
然后在你的on locationChange方法中为sLat和sLong充电
public void onLocationChanged(Location location)
{
sLat = Double.toString(location.getLatitude());
sLong = Double.toString(location.getLongitude());
所以sLat和sLong他们将拥有该位置,他们将随时可用...
...问候
答案 1 :(得分:0)
请勿使用IntentService
- 使用常规Service
和: