2010-05-28 4 views
7

android and services에 대한 새로운 질문입니다. 현재 이미지를 서버로 보내야하는 App을 개발 중입니다. 더 많은 이미지를 병렬로 전송할 수 있어야합니다.Android 서비스 다중 스레드 디자인

모든 이미지에 대해 새 이미지를 만드는 서비스를 만들었습니다. 활동은 해당 서비스에 바인딩하여 진행 상황에 대한 정보를 수집 할 수 있습니다. 알림의 모든 이미지에 대한 현재 상태를 표시하고 싶습니다 (사용자가 알림을 클릭하면 해당 이미지의 진행 상태가 표시되어야합니다).

하지만 이러한 접근 방식에는 몇 가지 문제가 있습니다. 바인딩에 오류가 있습니다. 알림 보류 중 이벤트가 활동을 완전히 새로 시작하므로 현재 이미지를 보내는 등의 정보가 손실됩니다.

누군가 적절한 방법으로 그러한 문제를 어떻게 디자인 할 수 있는지 말해 줄 수 있습니까?

들으

답변

9

나는 당신의 application 클래스에서 생성 된 컨트롤러 객체를 사용합니다. 이 컨트롤러는 모든 활동에 대해 동일합니다. 이미지 업로드가 시작되면 컨트롤러는 새로운 서비스/스레드를 생성하고 상태를 모니터링하고 알림을 표시합니다. 이제 모든 활동이 컨트롤러에 프로세스 상태를 요청하고 해당 정보를 사용자에게 표시 할 수 있습니다. 이렇게하면 애플리케이션 라이프 사이클에있는 컨트롤러가 서비스에 바인딩되고 수명이 짧지는 않습니다.

slideshare에서 슬라이드를 찾을 수있는 droidcon의 마크 brady와 대화가있었습니다. 사용 된 아키텍처 마크가 설명 될 때 슬라이드의 뒷부분에서 흥미 롭습니다. 나는 몇 주 동안 같은 문제로 싸웠고 같은 결과를 얻었고 마침내이 주제에 대한 그물에 어떤 종류의 자원이 존재하게되어 기쁩니다.

+0

우수 프레젠테이션의 포인터입니다. – mezmo

+0

위대한 링크. 잘 작동합니다. 고마워 – Masala