zoukankan      html  css  js  c++  java
  • 单例 对象UIApplication

    IOS笔记之UIApplication

    看了关于UIApplication东西,总结一下;

    1.什么是UIApplication?

    每个应用程序都会有自己的UIApplication,这个对象是个单例对象,是系统自动创建的,并且在程序启动后创建的第一个对象; 获取这个对象时,只能通过[UIApplication shareApplication],不可以用alloc等手动创建;

    2.UIApplication功能

    当需要进行一些应用级别的操作时可以利用UIApplication:

    设置应用程序图标右上角的红色提醒数字
    设置联网指示器的可见性
    设置应用程序的状态栏
    进行应用之间的跳转
    3.UIApplication的具体用法

    设置应用程序的提醒数字

    //获取UIApplication
    UIApplication app = [UIApplication sharedApplication];
    //注册用户通知
    UIUserNotificationSettings 
    setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
    [app registerUserNotificationSettings:setting];
    //设置提醒数字
    app.applicationIconBadgeNumber = 6;
    设置之前一定要先注册一个通知,从iOS8之后要先注册一个通知对

    象才能接收到提醒

    设置网络状态

    //获取UIApplication
    UIApplication *app=[UIApplication sharedApplication];
    //设置网络状态
    app.networkActivityIdicatorVisible= YES;
    设置状态栏
    应用程序的状态栏默认是控制器管理,我们可以重写控制器提供的方法,在控制器中设置状态栏的样式.

    //获取UIApplication
    UIApplication *app = [UIApplication sharedApplication];
    //设置状态栏的样式
    app.statusBarStyle = UIStatusBarStyleLightContent;
    //设置状态栏隐藏
    app.statusBarHidden = YES;
    通常在开发中都是用应用程序来管理状态栏的,不然的话,会有多个控制器,会非常麻烦

    想让应用程序管理状态栏要在info.plist中进行配置,

    添加一个key值:是最后一个,view controller-based status bar appearance 设置为NO就是用应用程序来管理了.

    跳转网页
    UIApplication *app=[UIApplication shareApplication];

    URL:协议头 应用程序是通过协议头的类型,去打开相应的软件

    NSURL *url=[NSURLWithString:@"http://www.baidu.com"];

    [ap openURL:url];

    //打电话

    [app openURL:[NSURL URLWithString:@"tel://10086"]];

    //发短信

    [app openURL:[NSURL URLWithString:@"sms://10086"]];

    4.UIApplication代理(delegate)

    所有的移动操作系统都个缺点:app很容易被打扰.

    如: 一个来电会或者锁屏等会导致app进入后台甚至被终止,当app受到干扰时 会产生一些系统事件,这时UIApplication就会通知他的代理对象,让代理来处理这些系统事件.

    其中代理(delegate)可以处理的事件:应用程序的生命周期事件(如程序启动和关闭)系统事件(如来电)内存警告……

    UIApplication会在程序一启动时创建一个遵守UIApplication的代理,这 个AppDelegate类就是遵守了UIApplicationDelegate协议,在这个类中定义了很多监听系统的方法,同时也定义了一些应用程序的生命周期 方法

    主要方法有:

    应用程序的生命周期

    应用程序启动完毕的时候调用

    • (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions {

    NSLog(@"%s",func);
    return YES;
    }
    当程序获取焦点时调用(获取焦点就是能够与用户进行交互)

    • (void)applicationDidBecomeActive:(UIApplication *)application {

      NSLog(@"%s",func);
      }
      当程序失去焦点是调用
    • (void)applicationWillResignActive:(UIApplication *)application {
      NSLog(@"%s",func);
      }
      当程序进入到前台时调用
    • (void)applicationWillEnterForeground:(UIApplication *)application {
      NSLog(@"%s",func);
      }
      当程序进入到后台时调用
    • (void)applicationDidEnterBackground:(UIApplication *)application {

      NSLog(@"%s",func);
      }
      当应用程序将要终止时调用
    • (void)applicationWillTerminate:(UIApplication *)application {
      NSLog(@"%s",func);

    }
    当程序收到内存警告时调用
    -(void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
    NSLog(@"%s",func);
    //清理缓存方法

  • 相关阅读:
    Linux防火墙:iptables禁IP与解封IP常用命令
    php7安装 event扩展
    laravel5.5 调用系统自带登陆认证auth
    linux 搭建rap记录
    微信小程序silk格式转码成mp3格式
    抓包软件
    laravel 微信小程序登录 加密解密扩展包
    mysql索引
    sphinx-for-chinese在windows下安装与使用方法
    sphinx增量索引和主索引来实现索引的实时更新
  • 原文地址:https://www.cnblogs.com/tianhui0211/p/5443418.html
Copyright © 2011-2022 走看看