2012-02-20 6 views
0

this article이 설명하는 방식으로 타이머를 설정하면 몇 가지 사항을 알 수 없습니다. 두 번째 질문에 확실한 답변이 있거나 없을 수도 있으므로 첫 번째 질문에 답할 수 있으면 답변으로 받아 들일 것입니다.MonoDroid 타이머

1) 타이머가 하나의 활동에 의해 시작되고 중지하라는 메시지가 나타날 때까지 5 분마다 실행하도록 설정된 경우, 활동을 변경 한 사용자가 완료하거나 백그라운드로 보낸 활동이 영향을 줍니까? 내가 타이머를 사용했던 한 번은 매우 간헐적으로 보였고 내가 잘못했거나 타이머에 내재되어있는 문제인지는 알 수 없습니다.

2) 나는 안드로이드 마저 타이머 사용을 권장하지 않는다고 말하는 사람들이있다. postDelayed()에 대한 권장 사항을 살펴 보았지만 참조 된 기사에서 설명한대로 X 분마다 반복해야하는 작업의 경우 문제가 될 수 있습니다. 제가 누락 된 더 바람직한 옵션이 있습니까?

기본적으로 정보를 서버에 다시 동기화하기 전에 인터넷 연결을 확인하고 있습니다. 장치가 연결되어 있지 않으면 연결을 확인하고 5 분 또는 10 분마다 타이머를 중지 할 수있는 시점까지 Sync 메서드를 실행하려고 시도하는 타이머를 시작하려고합니다. 이 타이머는 모든 활동에서 시작하여 현재 사용중인 활동에 관계없이 5 분 또는 10 분마다 계속 실행하고 모든 활동에서 취소 할 수 있어야합니다.

답변

0

TinyIoC/TinyMessenger을 살펴보십시오. 특정 서비스에 대한

  1. 정의 메시지 :

    나는 당신에 의해 설명하는 것과 비슷한 일을한다.
  2. 관심있는 메시지를 구독하는 서비스 인스턴스화
  3. 서비스 메시지를 시작할 때 구독합니다.

새 스레드, 타이머를 구현하는 서비스에 킥오프 경우/시작/정지 어디서나을 일시 중지하고 당신이 그것을 방송 모든 메시지를 (등 완료/오류)

를받을 수 있습니다

콜백이 사용자에 대한 메시지를 작성해야하는 경우 UI 스레드에서 명시 적으로 실행되도록주의해야합니다.

서비스를 중지하면 실행되는 스레드에 대한 참조가있는 경우 서비스의 중지 메시지를 브로드 캐스트하고 join()을 호출하기 만하면됩니다.

희망이 있습니다.