2014-08-30 139 views
8

我正在使用手機間隙來開發Android應用程序。是否有可能使用JavaScript檢查應用程序是在後臺還是前臺運行?如何檢查應用程序是否在前臺或後臺

因爲我們可以致電navigator.app.exitApp()關閉應用程序。我們也可以執行其他功能。

是否有任何功能可以告訴我們該應用程序是在後臺還是前臺運行?

其實,我想讓應用程序以下面的方式工作。

如果應用程序處於前臺,它應該顯示一條警告消息而不是推送通知。 如果應用程序在後臺,它應該顯示推送通知。

非常感謝確實。

回答

26

暫停:

這是在科爾多瓦應用程序放入後臺時觸發的事件。

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

詳細

科爾多瓦包括兩個代碼庫:本地和JavaScript。當本機代碼將應用程序置於後臺時,會觸發暫停事件。

通常情況下,一旦收到Cordova'deviceready'事件,您將希望附加一個帶有document.addEventListener的事件偵聽器。 支持的平臺

  • 的Android
  • 黑莓WebWorks的(OS 5.0或更高)
  • 的iOS
  • Windows電話7

快速例

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

function onPause() { 
    // Handle the pause event 
} 

簡歷:

這是從後臺檢索Cordova應用程序時觸發的事件。

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

詳細

科爾多瓦包括兩個代碼庫:本地和JavaScript。當本機代碼從後臺拉取應用程序時,resume事件被觸發。

通常情況下,一旦收到Cordova'deviceready'事件,您將希望附加一個帶有document.addEventListener的事件偵聽器。 支持的平臺

  • 的Android
  • 黑莓WebWorks的(OS 5.0或更高)
  • 的iOS
  • Windows電話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

+0

由於分配是爲我工作。我只是聲明瞭一個變量,並設置相關的值暫停和恢復事件。稍後我會在需要時檢查該值,以查看應用的最新狀態。 – vuimran 2014-08-31 16:56:49

+0

歡迎您:) – 2014-08-31 17:51:30

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。

相關問題