2014-09-18 4 views
1

안드로이드에서 오랫동안 타이머를 실행하고 사용자가 특정 활동 (예 : 라이브 숫자로 시작한 이후의 지속 시간)을보고 싶다면 사용자를 표시하려면 - 어떻게 구현해야합니까? 생방송으로, 나는 타이머가 기대하는 것처럼 실시간으로 변화하는 시간을 의미합니다. 이 타이머의 인스턴스가 하나만 있으면 되겠지만, 안드로이드의 스톱워치와 같을 것입니다. 그러나 맞춤형 앱 내에서 작동하도록 구현되었습니다.android : 장기간 타이머를 실행하십시오.

wakelock이 필요합니까?

서비스를 생성해야합니까?

또는 난 그냥 간단한 자바 타이머를 사용해야합니까?

도움/조언을 많이 주셨습니다.

감사합니다.

답변

1

'긴 타이머'는 1 분, 1 일을 의미합니까?

당신은 언제든지 안드로이드가 당신을 죽일 수 있다는 것을 알아야합니다. 그래서 활동은 그것을하기에 적당한 장소가 아닙니다.

당신은 서비스에서 작업을 실행할 수 있습니다 - 그의 수명은 활동 시간보다 길지만 사용자가 일주일 후에 활동에 복귀하거나 장치를 재부팅해도 시간을 확인하고자 할 것입니다.

원하는 정보를 더 자세히 알려 주면 문제를 쉽게 해결할 수 있습니다. 그들은 특정 활동

에 갈 때

가 사용자를 보여 내가 당신에게 문제를 보듯이 솔루션은 다음과 같이해야한다 :

  1. 먼저 활동에 입력 - 타이머를 만들고, 시작하십시오.
  2. 활동 중지시 타이머 및 시스템 시간의 현재 값을 저장하십시오.
  3. 활동을 재 작성한 경우 저장된 값을 읽고 새 타이머를 시작하십시오 값은 init_value + (current_time - saved_time)입니다.

이 경우 사용자가 활동을 떠나고 기기를 다시 시작하더라도 타이머가 지속될 수 있습니다.

또한 배터리 수명이 될 것입니다 훨씬 더 :)

+0

사용자가 제공하는 데이터를 자신의 이익을 위해 그대로는 (그것을 중지 관심에있을 것 정지 할 때까지 타이머의 길이는 단순히 것) 그러나 나는 8 시간을 최대 안전 장치라고 말하고 싶다. 당신이 언급 한 방법으로, 완벽하게 들리는데, 사용자에게 경과 시간을 영구적 인 알림으로 표시 할 수 있습니까? 아니면 잠금 해제 키를 누르고 화면의 잠금을 해제해도 화면에 표시 할 수 있습니까? – Michael

+1

예를 들어 알림 표시 줄에 시간을 표시 할 수 있습니다. 서비스를 사용하고 거기에서 알림 메시지를 업데이트하는 가장 좋은 방법은 매 초마다 '신선한'데이터를 원할 때입니다. 활동이 없을 때 activi의 논리에 의지하지 마십시오. – dilix

관련 문제