【发布时间】:2012-12-26 17:17:07
【问题描述】:
我想启动一个将在后台运行的服务,并每隔 30 到 45 秒显示一次纬度和经度。 以下是我正在使用的代码:
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(堆栈跟踪)说什么?
-
发布堆栈跟踪(-1 用于抱怨没有堆栈跟踪的崩溃)
-
请记住,这会耗尽电池电量。
-
@A--C ,njzk2 我没有收到任何错误,而是警告并且它没有停止。
标签: android service gps locationlistener