我的IOS应用程序关闭时如何调用方法

时间:2017-06-01 04:39:28

标签: ios objective-c swift firebase firebase-realtime-database

我正在尝试从用户关闭应用时设置的Firebase数据库中删除数据。应用程序关闭时是否有一个方法被调用,以便我调用最后一个函数从数据库中删除数据?

由于

4 个答案:

答案 0 :(得分:3)

使用双倍按下主页按钮关闭应用程序并向上滑动是不同的事情。它将调用以下方法

- (void)applicationWillTerminate:(UIApplication *)application {
}

按主页按钮,应用程序将在后台工作是不同的任务。也许你正在寻找

- (void)applicationDidEnterBackground:(UIApplication *)application{
}

请参阅TheAppLifeCycle

  1. 应用程序:willFinishLaunchingWithOptions : - 此方法是您的应用在发布时首次执行代码的机会。

  2. application:didFinishLaunchingWithOptions : - 此方法允许您在向用户显示应用之前执行任何最终初始化。

  3. applicationDidBecomeActive : - 让您的应用知道它即将成为前台应用。使用此方法进行最后一分钟准备。

  4. applicationWillResignActive : - 让您知道您的应用正在转变为前台应用。使用此方法可将您的应用置于静止状态。

  5. applicationDidEnterBackground : - 让您知道您的应用现在正在后台运行,并且可能会随时暂停。

  6. applicationWillEnterForeground : - 让您知道您的应用已移出背景并返回到前台,但它尚未激活。

  7. applicationWillTerminate : - 让您知道您的应用已被终止。如果您的应用被暂停,则不会调用此方法。

  8. 希望它会对你有所帮助。

答案 1 :(得分:1)

使用此appdelegate方法

- (void)applicationWillTerminate:(UIApplication *)application {
}

或者 删除每个应用程序启动中的数据,因为applicationWillTerminate 只能在限制条件下被召唤。

答案 2 :(得分:0)

快点,你会做这样的事情......

//设置通知监听器

NotificationCenter.default.addObserver(self, selector: #selector(YourVC.appTerminated(notification:)), name:NSNotification.Name.UIApplicationWillTerminate, object: nil)

//做你想做的事情

func appTerminated(notification : NSNotification){
    //do your thing
}

答案 3 :(得分:0)

Firebase支持一些与在线状态相关的功能。

https://firebase.google.com/docs/reference/ios/firebasedatabase/api/reference/Classes/FIRDatabaseReference#/c:objc(cs)FIRDatabaseReference(im)onDisconnectRemoveValue

如果要删除断开连接的节点。 ref.onDisconnectRemoveValue()

或者,如果要在节点上设置值:ref.onDisconnectSetValue(someValue)