2011-12-29 16 views
2

Cardcase應用程序可讓您知道您是否與前一個關係相關的商店(如果您已設置了付款選項卡等)。如果後臺應用程序無法自動啓動,Cardcase在位置上如何啓動?

如果後臺運行的應用程序無法在設備啓動時自動啓動,那麼此應用程序如何工作?

編輯使我的問題更清晰:我不問如何監視位置更改或如何監視背景中的位置更改。我的問題是,如果用戶安裝了這個應用程序,然後爲某些位置添加了一些標籤,然後他們重新啓動了他們的iPhone,那麼當應用程序在啓動時啓動不受支持時,這些應用程序如何隨後通知他們?

此應用程序(以及任何其他應用程序)是否必須依賴於每次重啓設備後用戶明確啓動?

+0

我從來沒有聽說過應用程序能夠在iPhone啓動時自動啓動,因此Cardcase最有可能在後臺運行時執行最少的服務器報告(基於顯着的位置更改)。 – 2011-12-29 22:33:30

+0

我想知道的是,它是如何得到在第一個地方運行在後臺,以註冊位置變化。如果用戶安裝了該應用程序並創建了各種商店的標籤,然後重新啓動,那麼應用程序在他們接近商店時是否無法通知他們? – Gruntcakes 2011-12-29 22:44:40

+0

你是否說iPhone重啓後Cardcase會神奇地啓動?沒有用戶明確啓動它? – 2011-12-29 22:50:59

回答

4

您可以通過區域監控來做到這一點。你註冊,你想與CLLocationManager這種方法來監測地區:

- (void)startMonitoringForRegion:(CLRegion *)region desiredAccuracy:(CLLocationAccuracy)accuracy

那麼即使你的應用程序沒有運行,它會在後臺啓動,當用戶進入或離開該區域。

從蘋果公司的docs

如果你開始監視的區域和您的應用程序隨後 終止,如果該地區越過邊界情況下,系統會自動重新推出其進入後臺 。在這種情況下,傳遞給應用程序的選項 字典:didFinishLaunchingWithOptions: 您的應用程序委託的方法包含密鑰 UIApplicationLaunchOptionsLocationKey,表明您的 應用程序是由於與位置相關的事件而啓動的。在 另外,創建一個新的位置管理器並分配一個委託 導致對應的區域消息的傳送。

編輯

與自己的應用程序只是測試這一點。在離開辦公室之前重新啓動了我的手機,並且像往常一樣在我的開車回家後啓動了應用程序。所以是的,這肯定能夠在重新啓動後生存。

希望有所幫助。

+0

謝謝,但我不認爲我很好地解釋了我的問題 - 我的問題是應用程序如何運行,以便在設備重新啓動後調用startMonitoringForRegion。我已經更新了這個問題,使其更清晰。 – Gruntcakes 2011-12-29 22:45:37

+0

那麼,在Casecard的情況下,用戶至少運行過一次應用程序,是嗎?我們在應用程序中使用此功能,並且在設備重新啓動後,註冊仍然有效。 – 2011-12-29 22:48:38

+0

如果應用程序註冊startMonitoringForRegion,我認爲這將不會重新啓動?你說這是嗎? – Gruntcakes 2011-12-29 22:51:34

0

這適用於地理圍欄應用程序(使用startMonitoringForRegion的應用程序)。

我的猜測是,當您使用此類安裝應用程序時,負責任的iOS框架將自動註冊用於iOS內部應用程序後臺服務啓動的launchd腳本。

當然,這一切都是自動完成的,因爲除非您越獄,否則您無法很好地控制iOS啓動服務。

您可以在您的應用程序上使用startMonitoringForRegion,越獄您的設備並檢查launchd以檢查它是如何工作的。

相關問題