2

我在 AIR for mobile 中创建了一个闹钟类型的应用程序。为了让它工作,我认为它需要一直运行。

基本上,我需要检查它是否是某个时间(检查存储的值 - 该值可能在本地 AIR SQLLite 数据库、在线、本地存储(AIR cookie)中。当满足这些条件时,例如计时器完成,我需要它启动应用程序。

我将如何让我的应用程序一直运行,或者是否有更好或替代的方式来做我想做的事情?有无头模式吗?假设我是初学者移动开发人员和初学者 AIR 开发人员。

注意:当我说启动应用程序时,我的意思是应用程序以全屏方式启动,而不是通知徽章或消息。虽然,如果第一个选项不可行,是否可以显示原生警报类型消息,当单击“确定”或任何原生方式时,会打开应用程序?

更新
似乎在 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

4

1 回答 1

4

AFIK,在 Android 上,应用程序在默认情况下最小化时在后台运行(真正的多任务处理)。Adobe AIR 在最小化时默认自动将帧速率降低到 4fps。降低的 fps 可能会影响闹钟的计时器事件延迟,因此如果您依赖客户端触发警报,我建议您使用基于 enter_frame 的计时器代理。注意:如果您希望服务器触发警报和/或最大化应用程序,您也可以在应用程序最小化时查询您的服务器。

在 iOS 中,情况就不同了,因为默认情况下应用程序不会在最小化时运行。唯一的例外是当您的应用使用其中一种UIBackgroundModes(在应用清单中设置)时。自从 4S 出现以来,App Store 对允许任何具有 UI 后台模式的应用程序都变得非常严格(bc of battery-gate)。例如,如果您尝试使用 提交UIBackgroundModes=audio,您的闹钟应用程序将被关闭,因为音频不连续(只有在闹钟响起时才会听到!)。因此,对于 iOS,您必须使用本地通知或推送通知。

本地通知由客户端设置,具有特定的延迟,就在最小化应用程序之前(在应用程序停用时是这样做的好地方)。不幸的是,到目前为止,对于 AIR-iOS 的本地通知 ANE (http://juankpro.com/wordpress/2012/06/17/using-the-local-notification-ane-on-ios),您不能通过客户端设置闹钟音效,但您可以每分钟重复一次默认的本地通知声音,从闹钟响起开始。

希望这个对你有帮助。

于 2012-10-07T07:38:54.783 回答