2012-02-20 51 views
0

如果我設置在this article描述方式的計時器,我不確定有兩件事情。我知道我的第二個問題可能有或沒有明確的答案,因此如果我的第一個問題能夠得到解決,我將接受答案。MonoDroid的定時器

1)如果定時器由一個活動開始,並設置爲每5分鐘,直到被告知停止運行,是否結束的活動或者被髮送到用戶不斷變化的活動都會影響到它的背景是什麼?有一次,我用了一個計時器,看起來非常間歇,不知道這是我做錯了什麼,或者只是計時器的固有問題。

2)我見過幾個人說,即使是Android不建議使用定時器。我已經看到了postDelayed()的建議,但正如我引用的文章中所解釋的那樣,對於需要每X分鐘重複一次的任務,這可能會產生問題。有沒有更好的選擇,我錯過了?

基本上,我回服務器同步信息之前,檢查連接到互聯網。如果設備沒有連接,我想啓動一個計時器來檢查連接性,並嘗試每5或10分鐘運行一次同步方法,直到成功爲止,計時器可以停止。這個計時器需要能夠從任何活動開始,不管當前正在使用什麼活動,每5分鐘或10分鐘繼續運行,並且可以從任何活動取消。

回答

0

看看TinyIoC/TinyMessenger

我做類似的事情,以你所描述的東西:

  1. 特定服務定義的消息。
  2. 實例化訂閱他們感興趣的消息的服務。
  3. 在啓動時訂閱服務的消息。

如果你在一個新的線程,它實現了一個定時器服務揭開序幕,你就可以開始/停止/從任何地方暫停,你可以收到廣播的任何消息(竣工/錯誤等)

如果回調函數需要爲用戶編寫消息,您只需要小心,您明確地在UI線程上運行。

當你停止服務,如果您有它運行的線程的引用,你剛纔廣播服務的停止消息,並調用join()方法。

希望有所幫助。