Swift - 程序进入后台,以及应用终止时调用的方法

本文介绍了一个iOS应用如何通过AppDelegate中的方法来管理应用的生命周期状态,特别是在应用进入后台或即将终止时如何保存数据以防止丢失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在AppDelegate中有如下两个方法要注意:
applicationDidEnterBackground()  当应用进入后台时起作用
applicationWillTerminate()  当应用终止的时候起作用

有了这两个方法,我们就可以对程序数据进行保护。
比如当应用崩溃,内存不足被系统终止,程序在后台呆太久被终止掉时,可以通过这两个方法对操作数据进行保存,以免数据丢失。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import UIKit
 
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
 
    var window: UIWindow?
 
    func application(application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        return true
    }
   
    //当应用进入后台时其作用
    func applicationDidEnterBackground(application: UIApplication) {
       saveData()
    }
     
    //当应用终止的时候起作用
    func applicationWillTerminate(application: UIApplication) {
        saveData()
    }
     
    func saveData(){
        //获取导航控制器
        let navigation = self.window?.rootViewController as UINavigationController
        //获取导航控制器的根视图控制器
        var controller:ViewController = navigation.viewControllers.first! as ViewController
        //执行ViewController的自定义数据保存方法
        controller.saveData()
    }
     
    func applicationWillResignActive(application: UIApplication) {
    }
 
    func applicationWillEnterForeground(application: UIApplication) {
    }
 
    func applicationDidBecomeActive(application: UIApplication) {
    }
}
注意:self.windows表示storyboard中的UIWindow对象,也是所有视图的总容器。在iOS应用中只有一个UIWindow对象。
如果我们给导航控制器勾选了is Initial View Controller属性,UIWindow对象的rootViewController获取的就是勾选了is Initial View Controller属性的导航控制器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值