2016-06-30 51 views
1

我想在我的应用程序中创建一个计时器。我创建了一个定时器为:React Native,在活动暂停时停止setInterval

var timer = document.getElementById('timer'); 
 
var rest = 90; 
 
timer.innerHTML = rest + 's'; 
 
var interval = setInterval(function(){ 
 
    if(rest <= 0){ 
 
    clearInterval(interval); 
 
    }else{ 
 
    rest -= 1; 
 
    timer.innerHTML = rest + 's'; 
 
    } 
 
    
 
}, 1000);
<div id='timer'></div>

但是,当用户离开我的应用程序(不杀,见好就收),去到任何其他应用程序,计时器停止工作。

当他回到我的应用程序,计时器开始工作。

回答

-1

我有一个小窍门。

var that = this; 
    for(var i = 1; i <= that.state.restSec; i++){ 
    setTimeout(function(){ 
     //do your stuff here 
    }, i * 1000); 
    } 

当你回来超时更新像他们在“onpause”:)期间工作。

2

这个问题是一个拷贝到以下几点:

How can I run background tasks in React Native?

以下的答案必须写的是: 目前,不幸的是,对于任何类型的后台任务的支持。您所指的功能将是后台计时器。这样的计时器是this product plain(功能请求)以反应本地,您可能会赞成它以显示对此功能的增加的需求。

(有没有更新呢。据我所知)

+0

对于我来说,当你的应用程序被杀死时,可以使用后台任务。在我的情况下,我只是想当用户锁定他的手机时不停止定时器。 –

+0

我认为让你的'后台任务'成为可能的唯一选择是完全实现本地化。但是,我没有经验给你正确的答案。我刚刚找到2个链接,我将分享给你,也许他们帮助你: https://facebook.github.io/react-native/docs/native-modules-android.html https:// developer。 android.com/training/run-background-service/create-service.html –