在应用程序中传递的秒数与经过的实际秒数不对应

时间:2015-09-12 13:52:56

标签: javascript cordova time

我正在使用cordova制作游戏,我需要计算用户退出应用程序和用户重新打开它之间的时间差异。 这是我的代码:

var date = new Date();
var currentTime = date.getTime();
var lastTime = parseInt(window.localStorage.getItem('lastTime'));
var timeDifference = Math.round((currentTime - lastTime)/1000 );

lastTime 等于在用户出口处执行的 date.getTime()

问题是 timeDifference 实际上并没有保留自上次退出以来经过的秒数,而是保留了更大的值。

1 个答案:

答案 0 :(得分:1)

您应该使用暂停/恢复事件:

function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

// device APIs are available
//
function onDeviceReady() {
    document.addEventListener("resume", onResume, false);
    document.addEventListener("pause", onPause, false);
}

// Handle the resume event
//
function onResume() {
    var date = new Date();
    var currentTime = date.setTime();
    var lastTime = parseInt(window.localStorage.getItem('lastTime'));
    var timeDifference = Math.round((currentTime - lastTime)/1000 );
}

// Handle the pause event
//
function onPause() {
    var date = new Date();
    var currentTime = date.getTime();
    window.localStorage.setItem('lastTime', currentTime);
}

请参阅more information about events的cordova文档。