我正在使用startservice和stopservice。
是开始按钮代码。
intent = new Intent(myActivity.this, myService.class);
startService(intent);
和停止按钮代码。
intent = new Intent(myActivity.this, myService.class);
stopService(intent);
startservice和stopservice它工作得很好。 但是,startservice - >停止服务后 - > startservice(所以它是restartservice), 当重启服务时,它已经具有第一个启动服务的价值。
它的服务代码
public class myService extends Service {
private LocationManager mLocationManager;
private LocationListener mLocListener = new LocationListener() {
@Override
public synchronized void onLocationChanged(Location location) {
Log.d("GPS", ""+location.getLatitude+"/"+location.getLongitude);
}
public void onCreate() {
super.onCreate();
}
public int onStartCommand(Intent intent, int flags, int startId){
mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
mLocationManager.requestLocationUpdates(Provider, INTERVAL_TIME, INTERVAL_DIST, mLocListener);
return Service.START_STICKY;
}
public void onDestroy() {
mLocationManager.removeUpdates(mLocListener);
super.onDestroy();
}
为什么在restartservice之前给我的mLocListener值? (复制和粘贴时我的代码有些错误。但只有start->停止才能正常工作。)
答案 0 :(得分:0)
对于GPS尝试使用mLocationManager.getLastKnownLocation