2016-07-19 1 views
1

서비스에서 AsyncTask (IntentService 아님)를 사용하는 것이 일반적인 방법입니다. 아니면 다른 방법으로 백그라운드 스레드를 만드는 것이 더 낫습니까?서비스에서 AsyncTask 사용

답변

4

서비스에

번호 AsyncTask의 포인트를 AsyncTask를를 사용하는 일반적인 관행이 백그라운드 작업이 완료된 후 기본 응용 프로그램 스레드에서 몇 가지 작업을 할 수있을 것입니다. 서비스가 주 응용 프로그램 스레드에서 작업해야하는 경우는 거의 없습니다.

다른 방법으로 백그라운드 스레드를 만드는 것이 더 좋습니까?

예 : new Thread()AsyncTask의 스트레이트 업 대체품으로 강력한 후보가됩니다. 다른 경우에는 스레드 풀의 일부 형식이 적합 할 수 있습니다.

+1

누군가가 다운이 투표 한 이유는 확실하지 사용하여 스레드를 생성합니다. 그는 질문에 직접적으로 정확하게 답변했습니다. AsyncTask, 작동하는 동안, 그것은 모범 사례가 아닙니다. 자신의 스레드를 사용하여 백그라운드 작업을 수행하십시오. 실행해야 할 일련의 작업이 많으면 HandlerThread + Handler를 직접 구현하여 작업을 깨끗하게 처리 할 수 ​​있습니다. –

+0

이것은 정확한 답변입니다. 투표를받을 자격이 없습니다. – ucsunil

+1

추가 할 또 다른 요점은 서비스를 사용하려는 의도가 오래 실행되는 액션에 대한 것입니다 (백그라운드에서 음악을 스트리밍하는 경우 큰 데이터를 다운로드하고 큰 데이터를 업로드하는 경우) AsyncTask . AsyncTask를 사용하면 수명이 짧은 작업을 처리 할 수 ​​있습니다. –

1

아니요, AsyncTask는 UI 스레드와 떨어져 백그라운드 스레드에서 일부 수명이 짧은 작업을 실행하도록 설계되었습니다. 일단 완료되면 UI 스레드를 수정할 수있는 콜백이 있습니다. 당신이 서비스에 별도의 스레드가 필요한 경우

new Thread()