2012-07-08 58 views
2

我在AIR for mobile中創建了鬧鐘類型應用程序。爲了它的工作,我認爲它需要一直運行。基本上,我需要檢查它是否有一定的時間(檢查存儲值 - 該值可能位於本地AIR SQLLite數據庫,聯機本地存儲(AIR cookie)中。當滿足這些條件時,例如計時器完整的,我需要它來啓動應用程序。如何讓您的移動AIR應用程序始終在後臺運行?

我將如何讓我的應用程序運行所有的時間或是否有更好的或替代辦法做我想做的事?有一具無頭模式?假裝我是初學者移動開發者和初學者AIR開發

注意:當我說開啓應用程序,我的意思是應用程序將全屏啓動,而不是通知標誌或消息。雖然,如果第一個選項不可行,那麼可以顯示一個本地警報類型消息,當單擊OK或本機方式時,將會打開該應用程序?

UPDATE
看來,在Android中有一種方式來運行你的應用程序作爲服務。當來自Google Cloud Messaging等通知或消息進入時,它會運行服務類和處理該消息的任何處理程序。我認爲你可以在需要時啓動應用程序。注意:我不確定是否需要GCM,因爲它是客戶端。意圖可能是我想要做的。 :P

它仍然模糊,但我加入更詳細的按照我的理解。

如何這涉及到AIR應用程序我還沒有確定。我想可能通過本地擴展。

GCM入門 - http://developer.android.com/guide/google/gcm/gs.html
GCM概述 - https://support.google.com/googleplay/android-developer/support/bin/answer.py?hl=en&answer=2663268

+1

你可以讓它在後臺運行,但我不認爲有一個「低資源模式」。所以「在背景中」實際上就是「隱形」。 – RIAstar 2012-07-08 00:50:56

+0

我更新了問題,使其對項目更有意義。 – 2012-07-08 09:15:48

回答

4

AFIK,在Android上,在默認情況下(真正的多任務)最小化在後臺運行的應用程序。最小化時,Adobe AIR將幀速率自動降至4fps。降低的fps可能會對鬧鐘的計時器事件的延遲產生影響,因此如果您依賴客戶端觸發鬧鐘,我建議使用基於enter_frame的Timer-surrogate。注意:如果您希望服務器觸發警報和/或最大化應用程序,則還可以在應用程序最小化時查詢您的服務器。

在iOS系統中,這是一個不同的故事,因爲在默認情況下,最小化的應用程序不運行。唯一的例外是當您的應用程序使用UIBackgroundModes(在應用程序清單中設置)之一時。自從4S問世以來,應用商店已經變得非常嚴格,只要允許任何具有UI背景模式的應用程序(電池門禁)。例如,如果您嘗試使用UIBackgroundModes=audio提交,您的鬧鐘應用程序將被拒絕,BC音頻不連續(當警報響起時它只是聽說過!)。所以,對於iOS,您必須使用本地或推送通知。

本地通知是由客戶端設置,與特定的延遲,只是之前最小化應用(在App停用是做到這一點的好地方)。不幸的是,使用本地通知ANE for AIR-iOS(目前爲止我已經看到)(http://juankpro.com/wordpress/2012/06/17/using-the-local-notification-ane-on-ios),您無法通過客戶端設置鬧鐘聲音效果,但您可以每隔一分鐘從鬧鐘響起開始重複默認的本地通知聲音。

希望這有助於一點。