我想要做的是一個服務,我可以開始。當我開始服務時,它應該聽取GPS位置更新。所以我採取了以下服務:locationManager.requestLocationUpdates()導致NullpointerException
public class TrackingService extends Service {
protected LocationManager locationManager;
protected PendingIntent locationReceiverPendingIntent;
protected Intent locationIntent;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
locationIntent = new Intent(this, LocationReceiver.class);
locationReceiverPendingIntent = PendingIntent.getBroadcast(this, 0, locationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE); // FINE tries to use GPS
long minimumWaitBetweenLocationUpdatesInMilliSeconds = 15000;
float minimumLoctaionChangeInMeters = 50;
locationManager.requestLocationUpdates(minimumWaitBetweenLocationUpdatesInMilliSeconds, minimumLoctaionChangeInMeters, criteria, locationReceiverPendingIntent);
}
@Override
public void onDestroy() {
super.onDestroy();
locationManager.removeUpdates(locationReceiverPendingIntent);
}
}
我在首發活動啓動此服務是這樣的:
@Override
protected void onResume() {
super.onResume();
Intent serviceIntent = new Intent(this, TrackingService.class);
this.startService(serviceIntent);
}
LocationReceiver是一個BroadcastReceiver。我上線以下NullPointerExpection用下面的代碼locationManager.requestLocationUpdates(minimumWaitBetweenLocationUpdatesInMilliSeconds, minimumLoctaionChangeInMeters, criteria, locationReceiverPendingIntent);
:
VM不提供監控信息
線程[< 1>主](暫停(例外的RuntimeException))
ActivityThread.handleCreateService(ActivityThread $ CreateServiceData) 線:2539 ActivityThread.access $ 1600(ActivityThread, ActivityThread $ CreateServiceData)線:141
ActivityThread $ H.handleMessage(消息)線:1316
ActivityThread $ H(處理程序).dispatchMessage(消息)線:方法.invokeNative(Object,Object [],Class,Class [],Class,int, boolean)行:不可用[native method] Method.invoke(Object, Object ...)line:511 ZygoteInit $ MethodAndArgsCaller.run()line:793
ZygoteInit.main(String [])line:560 NativeStart.main(String []) line:not available [native method]
這是什麼原因造成的?
感謝這個提示。不知道我是如何設法監督的:D –