进入后台的方法
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate,CLLocationManagerDelegate {
var locationManager : CLLocationManager?
var window: UIWindow?
var notificationDict = NSDictionary()
func applicationDidEnterBackground(application: UIApplication) {
UIApplication.sharedApplication().beginBackgroundTaskWithExpirationHandler(nil)
if self.respondsToSelector("IntoTheBackground") {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "IntoTheBackground", name: UIApplicationDidEnterBackgroundNotification, object: nil)
}
}
override func performSelectorInBackground(aSelector: Selector, withObject arg: AnyObject?) {
tik()
}
//计时器
func tik() {
if UIApplication.sharedApplication().backgroundTimeRemaining < 61.0 {
locationManager!.delegate = self
locationManager?.startUpdatingLocation()
UIApplication.sharedApplication().beginBackgroundTaskWithExpirationHandler(nil)
}
}
在需要的页面中viewDidAppear调用方法即可
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let model : ShareModel = ShareModel()
if (!model.NetWorking) {
NSHelper.showAlertTitle("网络不可用,请检查网络连接。", forView: self.view)
return
}
self.mapView?.delegate = self
self.search?.delegate = self
self.manager.pausesLocationUpdatesAutomatically = false
NSNotificationCenter.defaultCenter().addObserver(self, selector: "IntoTheBackground", name: UIApplicationWillResignActiveNotification, object: nil)
view.endEditing(true)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillHide:", name: UIKeyboardDidHideNotification, object: nil)
}