【问题标题】:Keeping an app running in the background让应用程序在后台运行
【发布时间】:2015-01-04 00:38:48
【问题描述】:

我有一个移动应用程序,它围绕一个计时器旋转,该计时器在屏幕上倒计时,并在计时器达到特定时间时发送各种信息,例如文本消息以及改变颜色、振动等。有没有办法保留应用程序不断在后台运行,以免被杀死?我正在使用 PhoneGap 服务,因此可以选择 PhoneGap 插件。我尝试了一个名为“后台模式”的插件,这里是link to the documentation。然而,这似乎不是 100% 的时间。

PhoneGap 生成一个 config.xml,我可以在其中更改应用程序的一些属性/设置。这是我在配置文件中定义的属性/首选项(与背景相关的)。

<preference name="exit-on-suspend" value="false" />
<preference name="KeepRunning" value="true" />
<gap:plugin name="de.appplant.cordova.plugin.background-mode" version="0.5.0" />

任何建议将不胜感激。

谢谢。

【问题讨论】:

  • 在 iOS 上,您将无法做到这一点,首先,计时器无法在后台工作。您可以通过检查日期来解决它。其次,仅允许与某些配件通信的基于位置的、VOIP、音频或应用程序在后台运行。然后Apple不允许您从代码发送短信,您只能将短信呈现给必须按自己发送的用户。通过您自己的服务器发送短信,您可以爱上这个。
  • @rckoenes 感谢您的提醒。我注意到,如果它不“交流”,它将被杀死。我可能会尝试实现某种定位服务,将数据发送回某个地方,但这就是后台模式插件的目的。我的短信在 Android 上可以正常发送,所以就像你说的,我可能必须通过 iOS 版本的服务器发送。

标签: android ios cordova phonegap-plugins mobile-application


【解决方案1】:

尝试使用服务。我认为这是您真正需要的。

活动可能会被终止,但服务将被保留

(只要你的硬件内存没有被其他人占用,那么服务就会被杀掉,如果你想重启)

http://developer.android.com/guide/components/services.html

【讨论】:

  • 嗨,我不确定我是否真的可以提供服务。我没有清单或类似的东西。只是一个 config.xml。我正在使用一个名为“Alpha Anywhere”的程序,很多人并不真正了解它,但它有一个PhoneGap 集成服务。但你对服务的看法是对的。
  • 服务方面,可以试试这个插件; github.com/Red-Folder/bgs-core 不幸的是,它只是 android,它需要你用你自己的代码扩展插件
【解决方案2】:

有时要找到答案需要重新表述问题。移动环境中的 Phonegap/Cordova 对如何使用后台进程非常敏感,因为这些东西会占用设备有限的资源(电池和数据限制)。

改变您处理此问题的方式,您会发现phonegap/cordova 可以为您提供完成任务的工具。

一般来说,使用 phonegap/cordova 框架很难让应用程序在后台运行超过 15 分钟。计时器几乎是不可能的。相信我,我试过了。当应用程序失去焦点时,它会暂停,如果设备需要内存,则可能会完全关闭,具体取决于您使用的平台。

另一种方法是让您的服务器处理时间问题并发送推送通知,这些通知可以短暂唤醒您的应用程序并允许您进行处理和响应。我使用后台获取方法取得了成功,该方法检查更新和安排通知(一些立即发生,一些稍后发生)。

将通知安排为定时事件,提示您的用户使用第三方local notification 插件打开应用程序。一旦用户听到和/或看到您的通知并打开应用程序,您就可以在应用程序恢复时对显示进行更改。有关如何处理此事件的详细信息,请参阅http://docs.phonegap.com/en/3.5.0/cordova_events_events.md.html

我希望这会有所帮助.. 祝您工作顺利

【讨论】:

    猜你喜欢
    • 2012-05-27
    • 1970-01-01
    • 2021-12-22
    • 2016-06-07
    • 2012-10-12
    • 2014-06-09
    • 2020-09-27
    • 2017-08-04
    相关资源
    最近更新 更多