我在AIR for mobile中创建了一个闹钟类型的应用程序。为了它的工作,我认为它需要一直运行。
基本上,我需要检查是否是某个时间(检查存储的值 - 该值可能位于本地AIR SQLLite数据库,联机,本地存储(AIR cookie)中。满足这些条件时,例如计时器完成,我需要它来启动应用程序。
如何让我的应用始终保持运行状态,还是有更好的或替代的方式来做我想做的事情?是否有无头模式? 假装我是初学者移动开发人员和初学者AIR开发人员。
注意:当我说启动应用程序时,我的意思是应用程序以全屏方式启动,而不是通知徽章或消息。虽然,如果第一个选项不可能,是否可以显示本机警报类型消息,当单击OK或本机方式时,是否会打开应用程序?
更新
似乎在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
答案 0 :(得分:4)
AFIK,在Android上,应用程序在默认情况下最小化时在后台运行(真正的多任务处理)。最小化时,Adobe AIR会自动将帧速率自动降低到4fps。降低的fps可能会影响闹钟定时事件的延迟,因此我建议使用基于enter_frame的定时器代理,如果您依靠客户端触发闹钟。注意:如果您希望服务器触发警报和/或最大化应用程序,您还可以在应用程序最小化时查询服务器。
在iOS中,这是一个不同的故事,因为默认情况下最小化时应用程序不会运行。唯一的例外是您的应用使用UIBackgroundModes
之一(在应用清单中设置)。 App Store已经变得非常严格,只要允许任何具有UI后台模式的应用程序,因为4S出来了(电池门的bc)。例如,如果您尝试使用UIBackgroundModes=audio
提交,您的闹钟应用程序将被关闭,但音频不是连续的(仅在闹钟响起时才会听到!)。因此,对于iOS,您必须使用本地或推送通知。
本地通知由客户端设置,具有特定延迟,就在最小化应用程序之前(在应用程序停用时,这是一个很好的地方)。不幸的是,到目前为止我已经看到AIR-iOS的本地通知ANE(http://juankpro.com/wordpress/2012/06/17/using-the-local-notification-ane-on-ios),你不能通过客户端设置闹钟声音效果,但您可以从闹钟响起的每一分钟开始重复默认的本地通知声音。
希望这有点帮助。