2011-06-10 3 views
0

나는 다운로드 버튼이 있습니다. 그것을 클릭하면 서비스가 시작됩니다. 이 서비스는 알림을 만들고 알림 표시 줄에 게시합니다. 통지 세부 사항을 보여 주면 다운로드 상태를 보여주는 프로그램 막대가 보입니다.안드로이드 어떻게 magentare Intentservice 대기열?

원인 서비스가 주 스레드에서 실행된다는 것을 알지 못했기 때문에 누군가가 자체적으로 작업자 스레드를 만드는 intentservice를 사용하도록 제안했습니다. 그래서 다 괜찮아요 내 gui 다운로드 중에 동결되지 않습니다.

하나의 문제가 있습니다. intentservice를 사용하려면 onHandleIntent 메서드 내에 다운로드 코드와 알림 부분을 구현해야했습니다. 이제 intentservice에는 한 번에 한 번씩 인 텐트를 관리하는 대기열이 있음을 알게되었습니다. 그래서 활동에서 다운로드 단추를 두 번 클릭하면 새 알림이 열리고 다운로드가 시작되고 끝나면 다시 onHandleIntent를 입력하면 두 번째 알림이 만들어지고 두 번째 다운로드가 시작됩니다. 나를 위해 파일을 다시 다운로드하고 함께 사용하지 않아도되지만, 적어도 두 번 다운로드 버튼을 누르면 serivce가 2 개의 다운로드 대기 중임을 알리는 알림을 업로드하는 것이 좋습니다. 의도 서비스가 코드를 한 번만하고 다시 한번 코드를 수행 할 수 없기 때문에 할 수 없습니다 ......... 해결할 수있는 방법이 있습니까?

수동으로 대기열을 처리하는 방법이 있습니까? 다른 의도를 얻은 경우 ........ 업데이트 알림 ....... 다음으로 계속합니다. 다운로드 ....

기타 질문, 의도 서비스가 다른 스레드에서 작업 중이라고 생각하면 수정할 수 있습니까? 아니면 처리기를 사용하여 메시지를 다시 보내야합니까?

마지막으로, 생성 된 스레드는 무엇입니까? onCreated 메서드 바로 뒤 또는 onHandleIntent 내부에 ???

+0

이해하기 쉽도록 질문을 정리하십시오. –

+0

누구든지 나를 도울 수 있습니까? – Sgotenks

답변

1

SharedPreferences 또는 Application 클래스 파일에 둘 다 다운로드 항목 수를 저장할 수 있습니다 (둘 다 전역 적으로 액세스 할 수 있음). 의도 한 번호를 IntentService에 전달하여 알림 메시지를 전달할 수 있습니다. Application 클래스에는 다운로드 수 (총, 현재 파일 등)를 업데이트하는 메소드가있을 수 있습니다. IntentService가 파기되거나 다운로드가 완료되면이를 IntentService에서 업데이트하여 알림에 표시 할 수 있습니다.

관련 문제