PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2016/05/04 14:49:38
Name F.Nietzsche
Subject [질문] 안드로이드 서비스 관련 질문입니다.
안녕하세요.

안드로이드 초하수가 질문 드립니다. ㅠ.ㅠ

백그라운드에서 주기적으로 작업을 하는 Service를 생각하고 있습니다.

처음에는 MainActivity에서 startService를 이용해 띄운 후에

Service 내에서 AlarmManager를 이용하여 작업을 진행하고 일정 시간 후에 다시 Service를 실행합니다.
(즉 Service 내에서 재귀적인 호출이 이루어집니다.)

여기에서 질문이 두가지 있습니다..

(1) Alarm을 set 했는데 실행 시간이 일정하지 않습니다.
interval초 후에 실행되도록 System.currentTimeMillis()+interval*1000 으로 인자를 전달하였는데
실행 시점이 제각각입니다.

(2) MainActivity에서 이 Service를 호출했을 때와 Service 내에서 재귀호출을 했을 때 동작이 달라야 합니다.
각 Service 호출 시 putExtra("caller","Main"), putExtra("caller","Service") 등으로 인자를 넣어주었는데요.
제 생각과는 다르게 Service 내에서 getStringExtra("caller")의 값을 보면 항상 Main이 찍힙니다.

위의 두 가지 문제를 어떻게 해결할 수 있을까요?
미리 감사 드립니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
Dondante
16/05/04 15:40
수정 아이콘
(1) AlarmManager의 set 함수 첫 번째 인자를 확인해보세요. 알람 타입이 총 네가지가 있는데 제대로된 타입으로 설정하는지 확인이 필요합니다. 혹은 알람이 울릴 시간을 계산하고 Calendar 클래스에 set 하신 후 절대 시간을 넣어보세요.

(2) Service 내에서 Intent 값을 확인하는 오버라이드 함수가 무엇인가요? onCreate 혹은 onStartCommand에서 확인하실텐데, 첫 호출은 onCreate에서 intent를 확인하시고, 그 후의 호출은 onStartCommand에서 확인해보세요. 만약 위처럼 onStartCommand를 사용하고 계신다면 onStartCommand의 리턴값 설정을 통해 intent 상태를 처리할 수 있으니 이것도 확인해보세요.

제가 아는 지식으로는 이 정도의 조언이 가능합니다. 위를 모두 확인해봐도 문제가 해결되지 않는다면, 힘내세요.
F.Nietzsche
16/05/04 15:48
수정 아이콘
Dondante님, 먼저 제 질문에 관심을 가지고 답변 달아주셔서 감사 인사 드립니다.
(1)번에 관해서는 첫번째 인자에
alarmManager.setExact(AlarmManager.RTC, System.currentTimeMillis()+interval*100, pIntent);
이렇게 사용하고 있는데, 여러 인자를 넣고 테스트를 해보겠습니다. 아니면 말씀하신대로 캘린더를 이용한 절대시간을 사용하는 방법도 생각할 수 있겠네요.

(2)번의 경우가 좀 애매한데요. 지금은 모든 상황에서 onStartCommand 함수 내에서 처리하고 있는데,
onCreate에 맨 처음 MainActivity로의 호출을 처리하고, 그 후에는 onStartCommand에서 처리하라는거죠?
이 두 함수가 MainActivity와 Service 그 자체에서 calling 하는 것을 구분하여 실행될지는 미지수네요.
onStartCommand의 리턴값 설정에 관한거라면 return Service.START_NOT_STICKY; 이런거 말씀하시는건가요?

제가 아직 많이 부족하여 헛갈리는 부분이 많습니다 ㅠ.ㅠ
Dondante
16/05/04 16:10
수정 아이콘
(1) RTC 혹은 RTC_WAKEUP를 사용하시는게 맞기 때문에 첫 번째 인자 문제는 아닌 듯 싶습니다. 이 부분은 애매하네요. 잠시 검색을 해보니 setExact 함수가 4.4 kitkat 디바이스에서 스크린오프 상황에서 정확한 시간에 동작하지 않는 오류가 있었던 것 같긴하네요. 그냥 set 함수를 사용해보시는게 어떨까요?

(2) 이 문제도 마찬가지로 onStartCommand에서 처리하고 있다면 별다른 문제가 없어보입니다. 혹시 꼭 intent extra를 사용해야할 이유가 없다면 action을 사용해서 처리하시는 것도 방법 중에 하나가 되겠네요. ACTION_MAIN, ACTION_SERVICE 등의 final string 값을 static으로 선언해놓으시고 serviceIntent.setAction(ACTION_MAIN); 이런식으로 action을 셋팅하시고, 받는 쪽에서는 intent.getAction() 을 통해서 action값을 받으실 수 있습니다. 마지막으로 onStartCommand의 리턴은 return super.onStartCommand(intent, flags, startId); 이걸로 바꿔보세요.
F.Nietzsche
16/05/04 16:30
수정 아이콘
setAction을 사용해도 여전히 main쪽 값 밖에 못 가져오네요 ㅠ
Flag인자도 PendingIntent.FLAG_UPDATE_CURRENT로 맞췄는데도 안되네요.
좀 더 삽질이 필요할 것 같습니다.

다시 한 번 감사 드립니다.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
82485 [질문] [스타1] 스타리그 추천 좀 부탁드립니다 [14] 모노크롬2397 16/05/05 2397
82484 [질문] LG 에서 기변을 하려고합니다 [3] 답변봇1736 16/05/05 1736
82483 [질문] 오프라인 갤탭 가격인데 괜찮나요? K51557 16/05/05 1557
82482 [질문] 혹시 노트3 SK용 최신 펌웨어 다운 받을 길이 있을까요?? [2] 아돌2037 16/05/05 2037
82481 [질문] 넥슨아레나 주변 밥집 추천 부탁드립니다 [2] fAwnt4stIC1609 16/05/05 1609
82480 [질문] 지포스 GTX 970 추천 부탁드려요 [7] Love.of.Tears.2819 16/05/05 2819
82479 [질문] 어제 위내시경과 복부ct촬영을 했는데 복통이 있네요 [2] PRADA3689 16/05/05 3689
82478 [질문] [급] 어버이날 선물 아이디어 추천 부탁드려요 [2] udckay2662 16/05/05 2662
82477 [질문] 문명 비욘드 어스 + 확장팩 [2] 일체유심조2092 16/05/05 2092
82476 [질문] 샤오미 폰 쓰다가 벽돌(?)이 된듯 합니다 [1] 속보4511 16/05/05 4511
82475 [질문] KBO 각 팀의 최고 인기선수는 어떻게 되나요? [21] 예루리3179 16/05/05 3179
82474 [질문] 원자보다 작은 입자의 종류는? [12] 마스터충달3749 16/05/05 3749
82473 [질문] 약정끝난 핸드폰skt에서 kt로 가는경우? [1] C91532 16/05/05 1532
82470 [질문] 혹시 요리쪽 관련 직업 가지신분 계신가요? [3] JWY3145 16/05/05 3145
82469 [질문] 간사이 7박 8일 일정 여쭤봅니다. [8] 무무무무무무2358 16/05/05 2358
82468 [질문] 간단한 홈페이지 제작 비용 보통 얼마나 드나요? [6] 로우킥황제2194 16/05/05 2194
82467 [질문] [LOL] 오늘 MSI 경기 추천해주세요!! [2] 리니시아2113 16/05/05 2113
82466 [질문] 영화 시빌 워에 관한 질문입니다 (스포 유) [10] 마티치2135 16/05/05 2135
82465 [질문] [미드] 데어데블에 나온 '바네사 피크스'에 대한 읽을 거리를 찾습니다. [2] 마음속의빛6038 16/05/05 6038
82464 [질문] 이런 음성변조도 가능한가요? 강나라1441 16/05/05 1441
82463 [질문] 싸고 괜찮은 안드로이드 기기 있을까요? [1] 카스1492 16/05/05 1492
82462 [질문] 연휴동안 볼 영화 추천점요(왓챠5점공유해요!) [6] 빅픽쳐2382 16/05/04 2382
82461 [질문] 세련된 느낌의 팝송 or 국내가요 추천 부탁드립니다. [8] Zest1994 16/05/04 1994
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로