每個app有且只有一個UIApplication對象,當(dāng)程序啟動的時候通過調(diào)用UIApplicationMain方法得到的。可以通過sharedApplication方法得到。
UIApplication對象的主要任務(wù)是處理用戶事件的處理路徑,例如分發(fā)一個UIEvent到另外一個對象去處理。UIApplication對象持有眾多的UIWindow對象,因此可以組織app的展示。UIApplication對象還能處理一些資源,例如通過openURL:打開郵箱客戶端或者設(shè)置界面等。
獲得UIApplication對象
[UIApplication sharedApplication]
獲得UIApplicationDelegate對象
[[UIApplication sharedApplication] delegate]
獲得UIWindow對象
[[UIApplication sharedApplication] windows]; //UIWindow數(shù)組
[[UIApplication sharedApplication] keyWindow]; //UIWindow數(shù)組中最后調(diào)用makeKeyAndVisible方法的UIWindow對象
控制和處理UIEvent
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//分發(fā)一個event到另外一個對象去處理
[[UIApplication sharedApplication] sendAction:@selector(action: forEvent:) to:[CustomHandler sharedCustomHandler] from:self forEvent:event];
}
[[UIApplication sharedApplication]beginIgnoringInteractionEvents]; //開始忽略Event
//...中間調(diào)用動畫等操作
[[UIApplication sharedApplication]endIgnoringInteractionEvents]; //結(jié)束忽略Event
[UIApplication sharedApplication].applicationSupportsShakeToEdit = YES; //晃動是否有撤銷或者重做動作
打開URL資源
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];//打開設(shè)置界面
配置通知設(shè)置
UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:mySettings]; //注冊遠(yuǎn)程推送通知
[[UIApplication sharedApplication] registerForRemoteNotifications];//注冊
[[UIApplication sharedApplication] unregisterForRemoteNotifications];//注銷
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:10];
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = date; //時間
localNotif.timeZone = [NSTimeZone localTimeZone]; //時區(qū)
localNotif.repeatInterval = NSCalendarUnitMinute; //間隔
localNotif.soundName = UILocalNotificationDefaultSoundName; //聲音
localNotif.alertBody = @"Local Test"; //通知內(nèi)容
localNotif.applicationIconBadgeNumber = 1; //數(shù)字標(biāo)示
localNotif.userInfo = @{@"key":@"test"}; //info
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; //注冊通知
[[UIApplication sharedApplication] presentLocalNotificationNow:localNotif]; //立即通知
[[UIApplication sharedApplication] cancelAllLocalNotifications]; //取消所有通知
[[UIApplication sharedApplication] cancelLocalNotification:localNotif]; //取消特定的通知
NSArray *arr = [[UIApplication sharedApplication] scheduledLocalNotifications]; //所有的通知
后臺運行相關(guān)
[[UIApplication sharedApplication] applicationState]; //app狀態(tài)
[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:3600]; //設(shè)置后臺運行時間
NSTimeInterval remainTime = [[UIApplication sharedApplication] backgroundTimeRemaining]; //app后臺運行的時間
NSLog(@"remainTIme = %f",remainTime);
int state = [[UIApplication sharedApplication] backgroundRefreshStatus]; //后臺刷新的狀態(tài)
NSLog(@"state = %d",state);
[[UIApplication sharedApplication] beginBackgroundTaskWithName:@"taskOne" expirationHandler:^{
}];
[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
}];
[[UIApplication sharedApplication] endBackgroundTask:1];
遠(yuǎn)程的控制相關(guān)
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
系統(tǒng)的Idle Timer
[UIApplication sharedApplication].idleTimerDisabled = YES; //不讓手機(jī)休眠
APP樣式
//隱藏狀態(tài)條
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
//設(shè)置狀態(tài)條的樣式
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
[[UIApplication sharedApplication] statusBarStyle];
//狀態(tài)條的Frame
[[UIApplication sharedApplication] statusBarFrame];
//網(wǎng)絡(luò)是否可見
[[UIApplication sharedApplication] isNetworkActivityIndicatorVisible];
//badge數(shù)字
[UIApplication sharedApplication].applicationIconBadgeNumber = 2;
//屏幕的方向
[[UIApplication sharedApplication] userInterfaceLayoutDirection];
設(shè)置狀態(tài)條的方向
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:YES];
數(shù)據(jù)類型
UIBackgroundTaskIdentifier : Int
typedef enum : NSUInteger {
UIRemoteNotificationTypeNone = 0,
UIRemoteNotificationTypeBadge = 1 << 0,
UIRemoteNotificationTypeSound = 1 << 1,
UIRemoteNotificationTypeAlert = 1 << 2,
UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3
} UIRemoteNotificationType;
typedef enum : NSInteger {
UIStatusBarStyleDefault,
UIStatusBarStyleLightContent,
UIStatusBarStyleBlackTranslucent,
UIStatusBarStyleBlackOpaque
} UIStatusBarStyle;
typedef enum : NSInteger {
UIStatusBarAnimationNone,
UIStatusBarAnimationFade,
UIStatusBarAnimationSlide,
} UIStatusBarAnimation;
typedef enum : NSInteger {
UIApplicationStateActive ,
UIApplicationStateInactive ,
UIApplicationStateBackground
} UIApplicationState;
const UIBackgroundTaskIdentifier UIBackgroundTaskInvalid ;
const NSTimeInterval UIMinimumKeepAliveTimeout;
typedef enum : NSUInteger {
UIBackgroundFetchResultNewData ,
UIBackgroundFetchResultNoData ,
UIBackgroundFetchResultFailed
} UIBackgroundFetchResult;
const NSTimeInterval UIApplicationBackgroundFetchIntervalMinimum ;
const NSTimeInterval UIApplicationBackgroundFetchIntervalNever;
typedef enum : NSUInteger {
UIBackgroundRefreshStatusRestricted ,
UIBackgroundRefreshStatusDenied ,
UIBackgroundRefreshStatusAvailable
} UIBackgroundRefreshStatus;
typedef enum : NSInteger {
UIInterfaceOrientationUnknown = UIDeviceOrientationUnknown ,
UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait ,
UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown ,
UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight ,
UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft
} UIInterfaceOrientation;
typedef enum : NSInteger {
UIUserInterfaceLayoutDirectionLeftToRight ,
UIUserInterfaceLayoutDirectionRightToLeft ,
} UIUserInterfaceLayoutDirection;
NSString *const UIApplicationOpenSettingsURLString;
NSString *const UIApplicationStatusBarOrientationUserInfoKey ;
NSString *const UIApplicationStatusBarFrameUserInfoKey;
NSString *const UIContentSizeCategoryExtraSmall ;
NSString *const UIContentSizeCategorySmall ;
NSString *const UIContentSizeCategoryMedium ;
NSString *const UIContentSizeCategoryLarge ;
NSString *const UIContentSizeCategoryExtraLarge ;
NSString *const UIContentSizeCategoryExtraExtraLarge ;
NSString *const UIContentSizeCategoryExtraExtraExtraLarge;
NSString *const UIContentSizeCategoryAccessibilityMedium ;
NSString *const UIContentSizeCategoryAccessibilityLarge ;
NSString *const UIContentSizeCategoryAccessibilityExtraLarge ;
NSString *const UIContentSizeCategoryAccessibilityExtraExtraLarge ;
NSString *const UIContentSizeCategoryAccessibilityExtraExtraExtraLarge;
NSString *const UIApplicationInvalidInterfaceOrientationException;
通知
UIApplicationBackgroundRefreshStatusDidChangeNotification
UIApplicationDidBecomeActiveNotification
UIApplicationDidChangeStatusBarFrameNotification
UIApplicationDidChangeStatusBarOrientationNotification
UIApplicationDidEnterBackgroundNotification
UIApplicationDidFinishLaunchingNotification
UIApplicationDidReceiveMemoryWarningNotification
UIApplicationProtectedDataDidBecomeAvailable
UIApplicationProtectedDataWillBecomeUnavailable
UIApplicationSignificantTimeChangeNotification
UIApplicationUserDidTakeScreenshotNotification
UIApplicationWillChangeStatusBarOrientationNotification
UIApplicationWillChangeStatusBarFrameNotification
UIApplicationWillEnterForegroundNotification
UIApplicationWillResignActiveNotification
UIApplicationWillTerminateNotification
UIContentSizeCategoryDidChangeNotification
具體用法意思,以后再補充