마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

[Service컴포넌트] 반복작업 질문입니다. [closed]

0 추천

프로젝트 설명:

1) 실시간 경위도를 GPS트래커가 불러옵니다. (EditText를 통해 확인함)

   - GPSTracker 클래스를 이용해 실시간으로 10m이동시 또는 1초마다 현재 경위도값을 읽어옵니다

2) 임의로 정해둔 경,위도 범위에 들어올시 static으로 선언한 배열의 값들을 변경 (아래 로그 경로확인부분)

  - MainActivity에서 Service를 호출합니다. 아래 Log를 통해 확인함. 서비스컴포넌트까지는 무난히 호출함

 

3) Service에서는 이를 받아 조건에 맞을시 음악파일을 재생합니다

- 앱 화면이 꺼지더라도 되게 하기위하여 Service 컴포넌트를 만들었습니다.

인터넷 예제 참고 http://developer88.tistory.com/36

 

 

질문1) GPSTracker가 경위도를 실시간으로 불러들이고 백그라운드 작업으로는 Service가 

       GPSTracker의 Static으로 선언된 경위도값을 참조하여 조건확인 작업을 하는게 개념상으로

        맞는건가요? 

질문2) Service에서 반복된 작업을 하기위해서 OnStartCommand()안에 원하는 반복작업을 적고

          return START_REDELIVER_INTENT; 를 받는정도만 코딩해놓았습니다. 

          혹여나 더 필요한게 잇을까요? 스레드나 run()을 이용한 코드들도 보았으나 확실히 개념적으로

          되는지가 궁금합니다.

 

 

질문을 종료한 이유: e
bg_u 1 (550 포인트) 님이 2017년 12월 4일 질문
bg_u 1님이 2017년 12월 5일 closed

1개의 답변

0 추천

1. 어떤 목적을 위한 GPS 트래킹인지에 따라서 서비스가 적절한 구현인지는 달라지겠지만 오직 background 작업만을 위해 Service를 사용해야 할 필요는 없습니다. 액티비티 생명주기와 무관하게 트래킹을 해야 하는 것이라면 Service를 사용하는게 좋습니다.

2. 개념상으로는 Intent를 통한 Message 전달 방식을 추천하고 있습니다. 원하는 작업에 대한 프로토콜을 만들어서 해당 Message에 대한 처리를 하는 것이 좋다고 알고 있습니다. Thread를 직접 제어하는 경우에는 추후에 문제가 생길 수 있어서 지양하고 있습니다.

 
minor (13,710 포인트) 님이 2017년 12월 4일 답변
...