【问题标题】:How to check whether the app is in foreground or background如何检查应用程序是在前台还是后台
【发布时间】:2014-10-24 09:14:59
【问题描述】:

我正在使用 phone gap 开发一个 android 应用程序。是否可以使用javascript检查应用程序是在后台运行还是在前台运行?

因为我们可以通过调用navigator.app.exitApp() 来关闭应用程序。我们也可以执行其他功能。

有没有什么函数可以告诉我们应用是在后台运行还是在前台运行?

实际上,我想让应用程序以下列方式运行。

如果应用程序在前台,它应该显示警报消息而不是推送通知。 如果应用程序在后台,它应该显示一个推送通知。

非常感谢确实。

【问题讨论】:

    标签: javascript android cordova push-notification


    【解决方案1】:

    在我看来,您会注册一个“暂停”事件 - 这会告诉您您的应用程序已进入后台。

    http://docs.phonegap.com/en/1.1.0/phonegap_events_events.md.html#pause

    然后您将注册一个恢复事件以接收有关您何时处于前台的通知(尽管无论如何程序逻辑应该在此时启动)。

    http://docs.phonegap.com/en/1.1.0/phonegap_events_events.md.html#resume

    我不是电话间隙用户,但在我查看 api 时,这些似乎是最明确的选择。

    【讨论】:

      【解决方案2】:

      暂停:

      这是在将 Cordova 应用程序置于后台时触发的事件。

      document.addEventListener("pause", yourCallbackFunction, false);
      

      详情

      Cordova 包含两个代码库:native 和 JavaScript。当本机代码将应用程序置于后台时,会触发暂停事件。

      通常,一旦您收到 Cordova 'deviceready' 事件,您将希望使用 document.addEventListener 附加一个事件侦听器。 支持的平台

      • 安卓
      • BlackBerry WebWorks(操作系统 5.0 及更高版本)
      • iOS
      • Windows Phone 7

      快速示例

      document.addEventListener("pause", onPause, false);
      
      function onPause() {
          // Handle the pause event
      }
      

      简历:

      这是从后台检索 Cordova 应用程序时触发的事件。

      document.addEventListener("resume", yourCallbackFunction, false);
      

      详情

      Cordova 包含两个代码库:native 和 JavaScript。当本机代码从后台拉取应用程序时,会触发 resume 事件。

      通常,一旦您收到 Cordova 'deviceready' 事件,您将希望使用 document.addEventListener 附加一个事件侦听器。 支持的平台

      • 安卓
      • BlackBerry WebWorks(操作系统 5.0 及更高版本)
      • iOS
      • Windows Phone 7

      快速示例

      document.addEventListener("resume", onResume, false);
      
      function onResume() {
          // Handle the resume event
      }
      

      更多信息在这里:

      http://docs.phonegap.com/en/2.2.0/cordova_events_events.md.html#resume

      http://docs.phonegap.com/en/2.2.0/cordova_events_events.md.html#pause

      【讨论】:

      • 感谢分配对我有用。我刚刚声明了一个变量并在暂停和恢复事件中设置了相关值。我稍后会在需要查看应用程序的最新状态时检查该值。
      • 这段代码在任何时候都无法判断应用是后台还是前台,例如在订阅事件之前
      猜你喜欢
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-08
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      相关资源
      最近更新 更多