我需要执行一个函数(基本上开始更新位置和距离驱动)而不打开任何视图控制器(在背景上)
我需要小部件像"遥控器一样工作"我的应用程序内的按钮。
然后当我打开应用程序时,该进程应该正在运行并显示相应的视图控制器
答案 0 :(得分:0)
您无法直接与应用的流程进行通信。如果您不想立即启动应用,可以通过共享容器传递一些数据:
let sharedUserDefaults = NSUserDefaults(suiteName: "group.com.mycompany.myapp")!
sharedUserDefaults.setBool(true, forKey: "tracking location")
sharedUserDefaults.synchronize()
然后在您应用的applicationDidBecomeActive:
中,您可以阅读该值:
let sharedUserDefaults = NSUserDefaults(suiteName: "group.com.mycompany.myapp")!
if sharedUserDefaults.boolForKey("tracking location") {
startTrackingLocation()
}
sharedUserDefaults.removeObjectForKey("tracking location")
sharedUserDefaults.synchronize()
您的今日窗口小部件控制器也可以是CLLocationManagerDelegate
,并在窗口小部件可见时跟踪用户的位置。