2012-07-08 24 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),您无法通过客户端设置闹钟声音效果,但您可以每隔一分钟从闹钟响起开始重复默认的本地通知声音。

希望这有助于一点。