2011-08-23 3 views
1

LocationListener를 구현하는 IntentService가 있습니다. 내 응용 프로그램이 실행 중일 때 실행되고 응용 프로그램이 닫힐 때 파기됩니다. onHandleIntent 메서드에서 LocationManager를 가져 와서 서비스 양식 위치 업데이트를 등록합니다. 그들의 OnDestroy 방법에서, 나는 전화 :LocationListener 서비스 중지 문제

locationManager.removeUpdates(this); 

그러나, 이것은 때때로 NullPointerException이 발생합니다 : 그 라인을 제거하면

08-23 20:45:09.826: ERROR/AndroidRuntime(6541): FATAL EXCEPTION: main 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541): java.lang.RuntimeException: Unable to stop service [email protected]: java.lang.NullPointerException 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  at android.app.ActivityThread.handleStopService(ActivityThread.java:3090) 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  at android.app.ActivityThread.access$3700(ActivityThread.java:125) 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2099) 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  at android.os.Looper.loop(Looper.java:123) 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  at java.lang.reflect.Method.invoke(Method.java:521) 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  at dalvik.system.NativeStart.main(Native Method) 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541): Caused by: java.lang.NullPointerException 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  at uk.ac.ic.doc.vmw10.wherewolf.helpers.Locater.onDestroy(Locater.java:137) 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  at android.app.ActivityThread.handleStopService(ActivityThread.java:3076) 
08-23 20:45:09.826: ERROR/AndroidRuntime(6541):  ... 10 more 

는 NullPointerException이 멀리 간다,하지만 LocationListener 때 나는 멈추지 않는다 내 응용 프로그램을 닫습니다. 어떻게하면이 문제를 해결할 수 있을까요?

+0

일부 코드보기? – darma

+0

코드 : uk.ac.ic.doc.vmw10.wherewolf.helpers.Locater? 또는 소스 코드에 액세스 할 수 있습니까? 그 줄을 확인하거나 여기에 넣을 수 있습니다. 그것은 우리에게 당신을 도울 수있는 방법에 대한 단서를 제공 할 수도 있습니다 – momo

답변

2

null 체크로 랩핑하는 것은 어떻습니까?

if (locationManager != null) 
    locationManager.removeUpdates(this); 
+0

아, 고마워요 - 나는 무엇이 null인지 확실히 모르겠습니다. 지금 모두 고정 – Pikaling

관련 문제