英文:
Is there a way to change some value when my app is running in background?
问题
我正在开发一个基于位置的应用程序,允许用户与其他用户分享其位置一段时间(15分钟、30分钟、60分钟、1天)。问题是,当用户设定的时间结束时,我需要将其状态更改为false,发送一个HTTP POST请求,停止分享他的位置,即使应用程序在后台运行也要做到这一点。我尝试使用苹果在iOS 13中提供的新的后台任务API,但我在阅读文档时发现它可能需要很多小时,而我需要在设定的时间结束时执行此操作。是否有办法在应用程序内完成此工作,还是应该使用服务器端操作来实现它?
英文:
I'm working in a location based app that allows the user to share his location with some other users for certain periods of time (15 minutes, 30 minutes, 60 minutes, 1 day), the thing is when the time, setted by the user, has finished I need to change his status to false, send a HTTP post with the status and stop sharing his location, even if the app is running in background. I have tried using the new Background Tasks API provided by Apple in iOS 13 but I found reading the documentation that it can take many hours and I need to do it when the time stablished finish. Is there a way to accomplish the job inside the application or should I use server side operations to achieve it?
答案1
得分: 3
考虑一下“显著变化”位置服务。它是一种位置监控功能,即使您的应用程序在后台运行,也可以工作,但不会像标准位置服务那样耗电严重。
它不是基于时间的,但您可以通过编程方式检查是否超过了分配的时间,如果是的话,就关闭显著变化位置服务。
参见使用显著变化位置服务。
英文:
Consider the “significant change” location service. It’s a location monitoring capability, which works even if your app is in the background, but isn’t as battery crushing as the standard location services.
It’s not time-based, but you could programmatically check to see whether you’ve exceeded the allotted time, and if so, then turn off significant change location service.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论