2014-03-31 98 views
1

一開始我認爲它會相當簡單,但我想不是。 我要調用一個URL每隔10分鐘,既可以當應用程序是在前臺的背景或 。我怎麼能意識到這一點?在後臺重複處理?

回答

3

我會使用一個HandlerService。另一種方法是直接使用Thread,但如果Android操作系統需要釋放內存,它很可能會被殺死。

Handler部分將是這樣的:

boolean stopHandler = false; 

Runnable runnable = new Runnable() { 
    @Override 
    public void run() { 
    // Do whatever you need 
    ... 

    if (!stopHandler) { 
     handler.postDelayed(this, 600000);  // 10 minutes 
    } 
    } 
}; 
+0

好了,所以我可以用這剪斷,它會做什麼,每10分鐘?我需要在哪裏嵌入它? – Philip

+1

是的,請查看'Handler'文檔,具體見'postDelayed'。你需要把它放在一個'Service'裏面。你可能想看看這個例子http://www.vogella.com/tutorials/AndroidServices/article.html – nKn

+0

謝謝!會做。有什麼類似的ios? – Philip

3

在iOS中7,你可以安排後臺操作爲週期性地從網絡獲取數據。 This tutorial是調度背景提取操作的例子 -

+0

和ios不會阻止它一段時間? – Philip

+0

若實際獲取來自網絡的數據 - 如果你聲稱自己是在做背景獲取,但不是蘋果不會好心看你的應用程序。哪裏有人試圖使用'beginBackgroundTaskWithExpirationHandler:'方法 - 這隻能提供有限的時間--10分鐘在iOS6和3分鐘在iOS 7 – Paulw11

+0

啊好吧謝謝! – Philip