如何检查应用程序是在前台还是后台

时间:2014-08-30 15:18:13

标签: javascript android cordova push-notification

我正在使用手机差距开发Android应用程序。是否可以使用javascript检查应用程序是在后台还是在前台运行?

我们可以通过致电navigator.app.exitApp()关闭应用。我们也可以执行其他功能。

是否有任何功能可以告诉我们应用程序是在后台运行还是在前台运行?

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

如果应用程序位于前台,则应显示警告消息而不是推送通知。 如果app在后台,则应显示推送通知。

非常感谢。

2 个答案:

答案 0 :(得分:28)

暂停:

这是将Cordova应用程序放入后台时触发的事件。

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

详细

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

通常,一旦收到Cordova“deviceready”事件,您将需要使用document.addEventListener附加事件侦听器。 支持的平台

  • 的Android
  • BlackBerry WebWorks(OS 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附加事件侦听器。 支持的平台

  • 的Android
  • BlackBerry WebWorks(OS 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

答案 1 :(得分:0)

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

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。