簡體   English   中英

如何使您的移動AIR應用程序始終在后台運行?

[英]How do you make your mobile AIR app run in the background all the time?

我已經在AIR for mobile中創建了一個鬧鍾類型的應用程序。 為了使其正常工作,我認為它需要一直運行。

基本上,我需要檢查是否到了一定時間(檢查存儲的值-該值可以在本地AIR SQLLite數據庫,聯機,本地存儲(AIR cookie)中。當滿足這些條件時,例如計時器完成,我需要它來啟動應用程序。

如何保持我的應用程序始終運行,或者有更好的替代方法來完成我想做的事情? 有無頭模式嗎? 假裝我是初學者移動開發人員和初學者AIR開發人員。

注意:當我說啟動應用程序時,是指應用程序以全屏模式啟動,而不是通知徽章或消息。 雖然,如果第一個選項不可行,則可能顯示本機警報類型消息,即單擊“確定”或任何本機方式后,將打開該應用程序嗎?

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=zh_CN&answer=2663268

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

在iOS中,情況有所不同,因為默認情況下最小化應用時,應用不會運行。 唯一的例外是當您的應用程序使用UIBackgroundModes (在應用程序清單中設置)之一時。 自從4S發布以來,App Store變得非常嚴格,以允許使用UI背景模式的任何應用程序。 例如,如果您嘗試使用UIBackgroundModes=audio提交,則您的鬧鍾應用將被關閉,因為音頻不是連續的(僅在鬧鍾響起時才會聽到!)。 因此,對於iOS,您必須使用本地或推送通知。

客戶端會在最小化應用程序之前設置本地通知,並會有特定的延遲(在應用程序停用時,這樣做是個好地方)。 不幸的是,到目前為止,我已經看到了有關AIR-iOS的本地通知ANE(http://juankpro.com/wordpress/2012/06/17/using-the-local-notification-ane-on-ios),通過客戶端設置警報音效果,但是您可以從警報響起起每分鍾重復默認的本地通知聲音。

希望這個對你有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM