2011-03-29 3 views
2

저는 Android가 처음이에요. 필자는 Threads/Services에 관한 여러 게시물과 문서를 읽었으며, 여전히 내 앱에 가장 적합한 솔루션이 무엇인지 파악할 수 없으므로 조언을 해 줄 수 있는지 궁금합니다.독립 실행 형 작업자 스레드 또는 IntentService?

내 메인 UI에는 '시작'및 '중지'버튼이 있어야합니다. "시작"은 파일에 정보 (예 : 배터리 통계, RSSI 등)를 쓰기 시작하는 스레드를 만듭니다. "시작"을 누르면 다른 응용 프로그램으로 전환되므로 내 UI가 "중지됨"상태가됩니다 (수명주기를 오해하지 않은 경우). 결국, 나는 내 애플 리케이션으로 돌아올 것이고 나는 실을 멈출 수 있기를 원한다.

대용량 파일 다운로드/업로드와 같이 장기간 실행되는 작업의 경우 가장 적합한 방법은 IntentService를 읽는 것입니다. 따라서 응용 프로그램이 중지되거나 (메모리가 충분하지 않은 경우에도) 서비스가 계속 작업을 수행 할 수 있습니다. 끝날 때까지. 내 앱에서와 마찬가지로 서비스 자체가 멈추지는 않습니다 (stopService 명령으로 중지해야 함). 계속 진행하는 가장 좋은 방법은 서비스입니까? 또는 정상적인 상황에서 UI가 죽지 않을 수도 있으므로 작업 스레드를 사용해야합니까?

파일에 직접 쓰거나 sqlite를 사용 하시겠습니까?

답변

2

설명하신 내용은 Service입니다. 활동과 독립적으로 작동하지만 필요할 때 중단 할 수 있습니다. 스레드 또는 안드로이드에서 더 나은 솔루션처럼, AsyncTask, 큰 파일이 아닌 너무 긴 것들을 다운로드하는 데 사용됩니다.

두 번째 질문은 다릅니다. 데이터가 복잡하고 몇 가지 방법으로 관계를 가지고 쿼리해야하는 경우 sqlite가 올바른 선택입니다. 그렇지 않으면 단순히 파일에 데이터를 쓸 수 있습니다.

+0

답변을 주셔서 감사합니다. @Vladimir, 나는 다음 서비스를 사용합니다 :) – kabracity