我想启动一个将在后台运行的服务,并且每隔30到45秒显示一次经纬度。 下面是我的代码,我使用的:如何在服务中获取Android中的位置
public class LocalService extends Service implements LocationListener {
private final static String TAG = "LocalService";
LocationManager lm;
public LocalService() {
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
subscribeToLocationUpdates();
}
public void onLocationChanged(Location loc) {
Log.d(TAG, loc.toString());
Toast.makeText(getApplicationContext(), loc.getLatitude() + " - " + loc.getLongitude(), Toast.LENGTH_LONG).show();
Log.i("Location", loc.getLatitude() + " - " + loc.getLongitude());
}
public void onProviderEnabled(String s) {
}
public void onProviderDisabled(String s) {
}
public void onStatusChanged(String s, int i, Bundle b) {
}
public void subscribeToLocationUpdates() {
this.lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
this.lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 30, 0, this);
}
}
我打电话给我的服务是这样的:
startService(new Intent(TimerServiceActivity.this,
LocalService.class));
这是我的服务清单代码:
<service android:name="LocalService" >
每当我运行这个代码,它给了我一个错误消息,不幸的是,TimerService
已停止。
LogCat(堆栈跟踪)说什么? –
post stacktrace(-1,用于抱怨没有堆栈跟踪的崩溃) – njzk2
使用https://github.com/commonsguy/cwac-locpoll –