美文网首页
iOS 程序前后台切换总结

iOS 程序前后台切换总结

作者: 里克尔梅西 | 来源:发表于2021-06-10 16:02 被阅读0次

一、应用程序的状态

  • Not running 未运行
    程序没有启动
  • Inactive 未激活
    程序在前台运行,没有接收到事件。在没有事件处理情况下程序通常停留在这个状态
  • Active 激活
    程序前台运行而且接收到事件。
  • Background 后台
    程序在后台且能执行代码。大多数程序进入这个状态会在这个状态停留一会,时间到了之后就会进入挂起状态(Suspended)。程序也可以经过特殊请求长期处于Background状态。
  • Suspended 挂起
    程序在后台不执行代码。系统会自动把程序变为这个状态且不会发出通知,当程序挂起时,程序还是停留在内存中,当内存低时,系统就把挂起的程序清楚掉,为前台程序提供更多的内存。

各种回调状态代理:

  • 应用程序启动,告诉代理进程启动但还没有进入状态保存
- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary<UIApplicationLaunchOptionsKey,id> *)launchOptions {
    NSLog(@"willFinishLaunchingWithOptions");
    return YES;
}
  • 启动基本完成程序准备开始运行。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSLog(@"didFinishLaunchingWithOptions");
    
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    
    UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    ViewController *vc = [mainStoryBoard instantiateViewControllerWithIdentifier:@"ViewController"];
    UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:vc];
    self.window.rootViewController = navi;
    
    return YES;
}
  • APP将要进入非活动状态
- (void)applicationWillResignActive:(UIApplication *)application {
    NSLog(@"APP将要进入非活动状态");
}
  • APP进入活动状态
- (void)applicationDidBecomeActive:(UIApplication *)application {
    NSLog(@"APP进入活动状态");
}
  • APP进入后台
- (void)applicationDidEnterBackground:(UIApplication *)application {
    NSLog(@"APP进入后台");
}
  • APP从后台回到前台
- (void)applicationWillEnterForeground:(UIApplication *)application {
    NSLog(@"APP从后台回到前台");
}

二、各种情况

  • 程序运行


    image.png
  • 应用退出到后台


    image.png
  • 应用从后台进入到前台


    image.png
  • 锁屏


    image.png
  • 点亮屏幕


    image.png
  • 滑下通知栏


    image.png
  • 从通知栏回来


    image.png
  • 滑出设置栏


    image.png

*从设置栏滑出


image.png
  • 来电
  • 挂断来电

参考资料:
1、https://www.jianshu.com/p/2dca46ea0c08
2、https://www.jianshu.com/p/6aa43a1be75f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
3、https://www.jianshu.com/p/fc675b077756

相关文章

网友评论

      本文标题:iOS 程序前后台切换总结

      本文链接:https://www.haomeiwen.com/subject/avhqjltx.html