2011-03-24 10 views
3

서비스에 관한 질문이 있습니다. 서비스 내에서 스레드를 만들거나 스레드 내에서 서비스를 개선하는 것이 무엇이겠습니까?서비스 내부의 스레드 또는 스레드 내부의 서비스?

내 응용 프로그램에 오류 기자를 구현 중이므로 응용 프로그램이 실패하면 나에게 무슨 일이 일어 났는지보고하게됩니다. 내 아이디어는 여기에서 오류가 발생하면 알림을 보내고 활동 활동을 보여주고 성공하거나 최소 시도 횟수에 도달 할 때까지 전달을 다시 시도하는 스레드를 만듭니다.

질문을 다시 한 번 해봅시다. 메모리 부족시 시스템에서 프로세스를 제거하지 않는 방법은 무엇입니까? 서비스 내의 스레드 또는 스레드 내의 서비스?

는 내가 가장 첫 번째 선택이다 생각하지만, 나는 여기에, 같은 안드로이드 사람의 코드를 보았다 :

(라인 640)가 두 번째를 사용 code from google to keep alive a thread??

. 당신이 그것에 대해 어떻게 생각하십니까?

UI 스레드와 상호 작용할 필요가 없기 때문에 AsyncTask가 필요하지 않습니다.이 시점에서 사용자에게 아무 것도 표시하지 않습니다.

+0

"내 생각은 여기 활동 활동 표시 오류가 발생하면 알림을 보내고 성공하거나 최소 시도 횟수에 도달 할 때까지 배달을 다시 시도하는 스레드를 만듭니다." '활동'이라는 활동이 있습니까? 재 시도 할 스레드가 생성됩니까? –

+0

물론, 내 생각은 사용자에게 알림을 보내고, 클릭하면 두 개의 버튼 (보내기 및 취소)으로 활동을 표시합니다. 사용자가 "보내기"를 클릭하면 서버에 errordata를 보내려고하는 스레드가 시작되고 30 분이 지나서 다시 시도하면 최대 6 회 재 시도 – user675319

+0

AsyncTask가 필요 없다고 말합니다. 그 시점에서 사용자에게 아무 것도 보여주지 않기 때문입니다. 그래서 GUI를 멈추지 않는 배경 작업이라고 생각합니다. 그냥 확인 ... –

답변

5

서비스 내부에 작업자 스레드를 만듭니다.

+0

당신은 대답을했습니다 ..하지만 어떤 장점이 있습니까? –

+0

일반적으로 활동의 수명주기 밖에서 백그라운드 작업을 수행하는 서비스를 만듭니다. 따라서 이점은 서비스가 활동 수명주기에 바인딩되지 않으며 실행이 여러 활동으로 확장 될 수 있다는 것입니다. –

+0

모두에게 감사의 말씀을 전합니다. 알림을 생성하는 서비스를 작성하여 해결했으며,이 알림은 스레드를 시작하는 활동 (클릭했을 때)을 생성합니다. 나는 이것이 가장 안정된 콤비네이션이라는 것을 알았습니다. 조금 난처하게 굴었지만 잘 작동합니다. 다시 한 번 감사드립니다. – user675319

관련 문제