2011-03-04 53 views
0

我目前正在開發我的第一個android應用程序。 我希望我的應用程序用戶能夠激活「數據自動更新」,這意味着某些數據應該每x分鐘刷新一次。我創建了由如何控制Android服務?

service = new Intent(context, MyService.class); 
context.startService(service); 

啓動的服務,我使用的服務中一個TimerTask定期刷新數據。

timer = new Timer(); 

TimerTask tt = new TimerTask() { 
    public void run() { 
     refreshData(); 
    } 
}; 
timer.scheduleAtFixedRate(tt,0,interval); 

我注意到服務可以重新啓動,然後。我怎樣才能確保refreshData();每隔一分鐘運行一次(不多或少)?如果用戶更改間隔(首選項)如何殺死當前計時器(任務)並開始新計時器?現在它似乎開始一個新的,但沒有殺死舊的製作refreshData()執行按照兩個時間間隔。

任何幫助表示讚賞!

回答

0

(我是新來開發Android也因此採取一切我半信半疑的說)

那麼它看起來像你對我有很多想辦的結構。有不同的方式與服務溝通。我認爲最好的選擇是廣播一個意圖,使服務收到意圖,並根據從意向收到的信息更改間隔。

+0

嗨,你可以解釋(或指向我的教程)如何做到這一點? – adam 2011-03-05 12:53:39

+0

對不起,我沒有很快回答。我仍然在搞清楚如何使用這個網站。無論如何,檢查遠程信使 http://developer.android.com/reference/android/app/Service.html#RemoteMessengerServiceSample – Gonzo 2011-03-06 00:02:42

+0

哇。不知道你必須按shift-enter才能輸入新的一行,而且我也不知道我有5分鐘的時間來編輯評論。 我的意思是說你可以做兩件事情:使用意圖或處理程序與服務進行通信。 隨着意圖,你應該查找如何註冊廣播接收器(記得把一個意圖過濾器在清單) 有了處理程序,你應該檢查出的API這個例子: http://developer.android.com /reference/android/app/Service.html#RemoteMessengerServiceSample 我認爲更簡單的方法是使用處理程序。請告訴我它好奇好奇 – Gonzo 2011-03-06 00:15:44