如何检查应用程序是否在前台或后台运行

9
我正在使用PhoneGap开发Android应用程序。是否有可能使用JavaScript检查应用程序是否在后台或前台运行?
正如我们可以通过调用navigator.app.exitApp()来关闭应用程序。我们也可以执行其他函数。
是否有任何函数可以告诉我们应用程序是否在后台或前台运行?
实际上,我想让应用程序按照以下方式工作。
如果应用程序在前台,则应显示警报消息而不是推送通知。 如果应用程序在后台,则应显示推送通知。
非常感谢。
2个回答

30

暂停:

这是一个事件,当Cordova应用程序进入后台时会触发。

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

详细信息

Cordova由两个代码库组成:原生代码和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由两个代码库组成:原生代码和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
非常感谢,这对我很有帮助。我只是声明了一个变量,并在暂停和恢复事件中设置了相关的值。每当需要查看应用程序的最新状态时,我稍后会检查该值。 - vuimran
这段代码无法在任何时刻告诉应用程序是在后台还是前台,例如在订阅事件之前。 - Finesse

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接