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

Service에서 타이머 구현? 후 다른 액티비티에 나타내고 싶은데요

0 추천
설정이라는 액티비티에서 어떠한 값을 지정하고 확인을 누르면 타이머가 실행되어 앱의 메인화면에서 보이게끔 만들고 있습니다.

앱을 껏다가 켰을때도 유지되게끔 하고자 하여 찾아본 결과 Service 가 있어서 Service에서 chronometer로 타이머를 구현하였으나 chronometer.start();시 메인화면으로 시/분/초를 넘겨줄 방법이 없어서 다른방법을 찾고 있다가 SharedPreference로 매번 변화되는 값(시/분/초)을 저장하여 메인화면에서 불러오려했는데 잘 안되네요

방법 없을까요?
하라르르 (310 포인트) 님이 2017년 4월 17일 질문

1개의 답변

0 추천
 
채택된 답변
굳이 서비스를 사용하실 필요는 없어 보입니다.

 

앱에서 타이머 실행시에 설정값(타이머 시간, 타이머 시작시간, 상태값(런닝중, 종료))을 preference 에 저장해 놓고 타이머를 보여주고,

타이머가 완료되면 preference에 해당 타이머가 완료되었다고 저장해주세요.

 

중간에 앱을 종료했다가 다시 실행할 때, preference 를 읽어들여

타이머완료가 안되었고, 타이머 시작시간과 현재 시간을 비교하여

타이머가 종료될 시간이 아니면 타이머를 보여주고,

타이머가 이미 종료될 시간이었다면 preference에 해당 타이머가 완료되었다고 저장.

 

위와 같이 하시면 굳이 서비스를 돌리면서 하실 필요는 없습니다.

물론, 앱이 종료한 뒤에도 노티나, 홈화면에서 계속 타이머를 보여주어야 한다면 서비스는 필요합니다.
익명사용자 님이 2017년 4월 18일 답변
하라르르님이 2017년 4월 20일 채택됨
...