Завершение рабочего потока IntentService вручную

У меня возникли проблемы с завершением метода IntentService onHandleIntent вручную. Я перехватываю исключение, которое имеет решающее значение для выполнения остальной части потока, и я хочу остановить поток, когда поймаю исключение. Я пытался вызвать stopSelf() или напрямую вызвать onDestroy(), что, я уверен, вероятно, очень плохой способ сделать это, и они не работают. Поток вызывает их, а затем продолжает работу.

У кого-нибудь есть хорошие идеи, как это сделать?


person gtdevel    schedule 24.08.2011    source источник


Ответы (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
}
person whlk    schedule 24.08.2011