2012-02-29 30 views
0

我需要在iphone應用程序處於後臺模式時有以下工作。在後臺模式下開始數據下載

1.運行一個時鐘。

2.每隔15分鐘與服務器通信以獲取服務器時間和另一個值。

3.需要在後臺模式下開始下載數據。

我搜索了很多這些是否可能。請對這些進行確認。

我正在開發涉及票務預訂系統的iPhone應用程序。我將我的應用程序註冊爲基於位置的應用程序,因爲它使用的是用戶在後臺爲某個目的所在的位置。

我的問題是我需要在後臺模式下運行我的應用程序中的內部時鐘。我需要在覈心位置代理方法中編寫內部時鐘代碼,以便內部時鐘也可以與位置服務一起運行。我的應用會被拒絕嗎?這樣做有什麼不對嗎?

我需要在我的應用程序中使用正確的時間,以便運行此內部時鐘。我可以使用NSDate,但會返回設備時間。任何人都可以更改設備時間。所以一旦有人被搗亂,錯誤的時間會影響應用程序的順暢運作。請問有些人建議在不使用內部時鐘的情況下獲得正確的時間?

+1

您的搜索發現了什麼? – 2012-02-29 11:48:26

+1

當您的應用處於後臺模式時,您無法執行此操作。 – sosborn 2012-02-29 12:26:35

+0

我的申請是高度依賴於上述事情。謹建議一些解決方案。在我的研究中,我發現後臺服務僅適用於基於位置的應用,VOIP和音樂播放。並且還要在後臺繼續一個有限長度的過程,這也需要大約10分鐘。 – Praveen 2012-03-01 05:36:55

回答

1

這是可能的,你需要做的是,

1]運行一個後臺線程,在其中設置的NSTimer有15分鐘。

2]設置重複:YES每15分鐘調用一次。

3]然後開始下載你的需求!

我會這樣做,如果我卡住你的情況!

+0

我想執行所有的應用程序沒有運行在前臺。您的方法建議您可能在我的情況?請確認。 – Praveen 2012-03-01 05:00:54

+0

您需要在應用程序委託中運行一些後臺線程。 – Hemang 2012-03-01 05:48:14

2

我想你想你的應用程序在前臺運行沒有做到這一點 - 這是不可能的,如果你不使用一些技巧,喜歡玩一個空的音頻文件,並僞裝成音樂播放機等。

在iOS中,您只能執行應用程序的代碼,而它在前臺中主動運行,但某些特定任務(如VOIP或音樂播放除外)除外。

如果您希望在前臺運行應用程序時執行此操作,請使用NSTimer以及用於加載的後臺進程,就像建議的一樣。但是,您還應該在1分鐘後阻止iPhone進入睡眠模式,否則當用戶在15分鐘內沒有主動使用應用程序時,iPhone將無法工作...

+0

是的,當應用程序未在前臺運行時,我想要執行所有這些操作。我需要每15分鐘致電webservice並通過檢查從API獲取的響應來觸發下載。在蘋果文檔中,我看到後臺服務僅適用於基於位置的應用程序,VOIP和音樂播放。是否有任何方法可以滿足我的要求。請詳細解釋技巧。提前感謝。 – Praveen 2012-03-01 05:34:05

+1

我到目前爲止還沒有做過任何這樣的工作,我想蘋果也會對任何使用後臺運行流程的人都皺眉頭 - 除此之外,你的應用可能會被拒絕。如果你真的想這樣做,谷歌周圍,有很多關於如何使用這些技巧的解釋。 – TheEye 2012-03-01 08:52:04