2011-08-24 7 views
2

IntentService onHandleIntent 메서드를 수동으로 종료하는 중 일부 문제가 있습니다. 스레드의 나머지 부분을 실행하는 데 중요한 예외를 잡기 때문에 예외를 잡아 스레드를 중지하고 싶습니다. stopSelf()를 호출하거나 onDestroy()를 직접 호출 해 보았습니다. 아마도이 작업을 수행하는 것은 매우 나쁜 방법 일 것이고, 작동하지 않을 수도 있습니다. 스레드가 스레드를 호출 한 다음 계속합니다.수동으로 IntentService 작업자 스레드 종료

누구든지이 작업을 수행하는 방법에 대한 아이디어가 충분합니까?

답변

2

sonykuba는 onHandleIntent 방법은 서비스를 중지 마무리 말했듯이. 그래서 다음과 같이 할 수 있습니다 :

public void onHandleIntent { 
    try { 
    // ... your code here 
    } catch(YourException e) { 
    // do something with the exception 
    return; // this prevents the rest of the method from execution 
      // and thereby stops the service 
    } 
    // rest of your code 
} 
+0

고마워, 그게 효과가 있다고 생각해. – gtdevel

1

IntentService는 OnHandleIntent를 마친 후 자동으로 중지됩니다. 수동으로 할 필요가 없습니다. 방법의

읽기 설명 onHandleIntent()

+1

감사합니다. 하지만 수동 방법을 통해 조기에 중단 할 수 있는지 알고 싶습니다. 그게 가능한지 아십니까? – gtdevel

+0

stopService()를 호출 해보십시오.하지만 서비스를 시작한 스레드에서 사용할 수 있습니다. –

+0

이것은 아무것도하지 않지만 onDestroy를 호출 – urSus