【问题标题】:How to avoid my app to be terminated, when it's running and tracking my location in the background?如何避免我的应用程序在后台运行并跟踪我的位置时被终止?
【发布时间】:2012-06-17 03:22:07
【问题描述】:

我正在制作一个应用程序,它需要每次都跟踪用户的位置。它也可以在后台模式下工作。问题是当我多次使用其他应用程序时。其他应用程序可能会导致大量内存。我的应用程序有时会被系统终止。没有崩溃日志。所以我想知道一些原因。有什么办法可以避免我的应用程序被终止?非常感谢您的帮助。

【问题讨论】:

    标签: iphone ios background location terminate


    【解决方案1】:

    您无法阻止应用程序被终止,但要让它保持活动状态,最好的办法是当它进入后台时尽可能多地释放内存 - 缓存的图像、文件...同时停止任何正在运行的计时器,UI 更新和一切耗时。通过遵循 MVC 规则,最好的实现是创建一个单独的类(模型),它只负责位置更新(内部有CLLocationManager,并且该类实现了它的委托方法)。因此,您唯一应该在后台做的就是收集CLLocationManager 收到的位置点,仅此而已。还要在你的AppDelegate 中实现方法-applicationWillTerminate。仅当应用程序处于后台并且它将被终止(由操作系统或用户)并在内部保留 CoreData 中的位置点时才调用此方法,或者无论如何您都这样做......我有这样的方法和到目前为止,我的应用程序已经存活了 24 小时(当然还有充电)而没有被杀死。

    【讨论】:

      【解决方案2】:

      应用程序在后台运行取决于内存使用情况、电池寿命等。当有许多应用程序在后台运行时,您的应用程序可能会终止。我认为您不能在后台永久运行您的应用程序。

      【讨论】:

      • 感谢您的快速回复。如果我的应用使用较少的内存,是否会减少被终止的机会?
      • 并且您可以在位置发生变化时通知用户。点击此链接:stackoverflow.com/questions/3775730/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 1970-01-01
      • 2016-12-26
      • 2013-03-01
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多