我创建了一个可响应的android应用,该应用可监控wifi环境中的变化并将其定期传输到云中。该应用程序通常在后台运行。但是,在设备屏幕变暗并锁定应用程序几分钟后,该应用程序停止运行。
我知道当应用程序进入后台并且屏幕锁定时会发生的问题。我尝试使用两种机制来解决这些问题:
我以以下方式使用它们:
componentDidMount() {
this.askForUserPermissions();
this.getUserData();
console.log("BackgroundTimer.setInterval");
const intervalId = BackgroundTimer.setInterval(() => {
this.updateData();
}, 1000);
console.log("Registering Background Task");
BackgroundTask.schedule();
}
其中updateData是用于检查wifi状态(扫描的网络,ssids,bssids,ip地址等)变化并更新状态并将数据发布到云的功能。
后台任务代码仅通过获取和发布将数据发布到云中。
在解锁设备时,两种机制都可以很好地工作,但是在锁定设备后几分钟,它们都停止工作。
即使设备处于休眠状态,如何使我的应用程序继续运行?