バックグラウンドで実行され、緯度と経度が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
停止したというエラーメッセージが表示されます。