zoukankan      html  css  js  c++  java
  • UIApplication 概述

    原文地址:http://blog.csdn.net/lixing333/article/details/7777015

    以前刚学iPhone开发时,觉得UIApplication这个东西特NB,特神秘,比如它居然能打开一个URL,而且还是用一个很神秘的方法得到实例:

    [cpp] view plaincopy
     
    1. [UIApplication sharedApplication]  

    它对我的神秘感一直保持到今天下午。今天下午负责UI设计的同事在设计,我没有素材,比较清闲,于是发个狠,专门看了一下UIApplication这个类。果然是难者不会,会者不难,看完之后,这个类的神秘感一下子没了。下面让我来揭开它的神秘面纱。

    UIApplication,顾名思义,代表的是整个应用做的事,因此每个程序只能有一个,系统使用的是单例模式,就是上面的[UIApplication sharedApplication]来得到一个实例。这个单例实例是在系统启动时由main函数里面的UIApplicationMain方法生成,就是每个程序里都有的AppDelegate,它实现了UIApplicationDelegate的Protocol,也就是AppDelegate的一个实例。每次通过[UIApplication sharedApplication]调用的就是它。

    UIApplication在程序里的角色:它保存一个UIWindow对象序列,用来快速恢复views。它还有很多作用,不过我也不大清楚了。

    下面来看看我们能用它来干什么:

    一、远程提醒,就是push notification注册;

    二、可以连接到UIUndoManager;

    三、检查能否打开某个URL,并且打开URL;这个功能可以配合应用的自定义URL功能,来检测是否安装了某个应用。比如检测是否安装了淘宝的应用,可以用下面的代码:

    [cpp] view plaincopy
     
    1. NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"taobao://item.taobao.com/item.htm?id=12688928896"]];  
    2. // 判断当前系统是否有安装淘宝客户端  
    3.     if ([[UIApplication sharedApplication] canOpenURL:url]) {  
    4.         // 如果已经安装淘宝客户端,就使用客户端打开链接  
    5.         [[UIApplication sharedApplication] openURL:url];  
    6.     }  

    四、注册Local Notification;

    五、在后台运行以及从后台转为前台时的操作;

    六、防止屏幕睡眠:

    [cpp] view plaincopy
     
    1. [[UIApplication sharedApplication].idleTimerDisabled=YES;  

    七、手动调整status bar的位置和状态,如设置为竖屏、横屏等;

    八、设置badge number,就是图标右上角的数字;

    九、每当应用联网时,在状态栏上会显示联网小菊花。UIApplication可以设置是否出现。

    十。。。还有一些应用,不过那些更不常用,而且我也看不太懂。就写到这里吧。

  • 相关阅读:
    LINUX学习笔记day2
    android 获取正在运行的服务
    android小部件
    android开发_国外论坛
    取消线程
    AlarmManager的使用
    PendingIntent
    SharedPreferences 的使用
    流量监听
    android 异常-access to constructor not allowed
  • 原文地址:https://www.cnblogs.com/worldtraveler/p/4685082.html
Copyright © 2011-2022 走看看