k***@hotmail.com
k***@hotmail.com
  • 发布:2017-04-18 17:36
  • 更新:2017-04-19 11:37
  • 阅读:1883

setInterval 在IOS中只运行一次,而在Andriod中运行正常

分类:HBuilder

在我的代码中,我使用定时器定期执行一个方法,代码片段如下:

var INTERVAL_SUBMIT_MISSION = 10000;  

//初始化提交定时器  
function initSubmitTimer() {  
    setInterval(checkAndSubmitData, INTERVAL_SUBMIT_MISSION);  
}  

function checkAndSubmitData() {  
    console.log("checkAndSubmitData starts");  
}  

在IOS上真机运行时,根据console输出发现,checkAndSubmitData只执行了一次。
而在Andriod上运行时,checkAndSubmitData每10秒钟被执行一次(正常)。

2017-04-18 17:36 负责人:无 分享
已邀请:
k***@hotmail.com

k***@hotmail.com (作者)

经过追踪,发现定时器本身没有问题,但在定时器初始化后再创建plus.maps.Map对象,定时器会失效。

创建Map对象的代码如下:

var g_mapObj = null;  

function queryGeoLocation() {  
    console.log("queryGeoLocation starts");  

    if(g_mapObj == null)  
        g_mapObj = new plus.maps.Map('allmap');  

       // 还有其他代码  
}     

如果在这段代码中console.log之后直接return,定时器依旧工作正常;但如果执行了new plus.maps.Map之后再return,定时器就失效了。这是一个plus.maps.Map的Bug吗?

该问题目前已经被锁定, 无法添加新回复