【问题标题】:iOS background location tracking after reboot重启后iOS后台位置跟踪
【发布时间】:2018-12-15 16:56:36
【问题描述】:

想象一下,我正在为我的 iOS 应用程序设置一个位置后台任务来跟踪用户的位置。用户授予我的应用访问他的位置“始终”的权限。这是否意味着后台任务仅在从应用程序启动时运行,直到手机关闭,或者这是否意味着重新启动操作系统后重新启动位置后台任务?

【问题讨论】:

    标签: ios location core-location


    【解决方案1】:

    这意味着即使应用不在前台,您也可以访问定位服务。但是,您必须有一些活动的任务,例如正在进行的导航。

    Always API 函数并不等同于持续后台执行。

    【讨论】:

    • 这意味着一个一直在跟踪我的动作的应用程序在ios上是不可能的?
    • 据此,您的答案可能是错误的:developer.apple.com/documentation/corelocation/… "您的应用可以使用所有位置服务,并且可以从前台或后台启动这些服务。如果与位置相关的事件当您的应用程序未运行时发生,系统会启动您的应用程序并传递事件。”但这并不能回答问题,如果后台任务在重新启动后重新启动。
    • @NiklasRaab 是的,但是你不能执行任意代码。
    【解决方案2】:

    一个任务必须属于一个进程。如果线程的进程不工作,线程就不能工作。所以,答案是第一个,后台任务仅在从应用程序启动时运行。因为您的后台任务属于您的应用,这意味着您的进程。

    如果你想让它工作,即使你的进程被杀死,你必须创建一个系统线程。但是,如果您不开发设备驱动程序,大多数操作系统都不允许用户这样做。

    【讨论】:

    • iOS 我不这么认为
    • 如果您开发设备驱动程序,您可以。否则没有。
    • 据此,您的答案可能是错误的:developer.apple.com/documentation/corelocation/… "您的应用可以使用所有位置服务,并且可以从前台或后台启动这些服务。如果与位置相关的事件当您的应用程序未运行时发生,系统会启动您的应用程序并传递事件。”但这并不能回答问题,如果后台任务在重新启动后重新启动。
    • 不,它表示如果在您的应用未运行时发生与位置相关的事件,则系统会启动您的应用。这并不意味着该事件是您的后台线程。当您的应用启动时,您的后台线程就可以启动。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    • 2015-12-21
    • 2013-05-16
    • 2015-09-16
    • 2017-04-13
    • 2013-07-02
    相关资源
    最近更新 更多