1、当应用程序启动时(不包括已在后台的情况下转到前台),调用此回调。launchOptions是启动参数,假如用户通过点击push通知启动的应用,这个参数里会存储一些push通知的信息。
– (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSLog(@"程序载入后");
}
2、应用程序将要进入非活动状态执行(一般在程序运行时,有来电,锁屏,按HOME键,下拉通知栏,双击HOME键等情况会调用此方法),在此期间,应用程序不接受消息或事件 。在此方法中可以暂停正在进行的任务,如禁用定时器,暂停游戏等
- (void)applicationWillResignActive:(UIApplication *)application
{
NSLog(@"应用程序将要进入非活动状态(进入后台)");
}
3、应用程序已经进入后台运行(应用程序支持后台运行),使用此方法来释放资源共享,保存用户数据,无效计时器,并储存足够的应用状态信息,等应用重新进入前台运行时将应用恢复到目前的状态。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSLog(@"应用程序已经进入后台运行");
}
4、应用程序将要进入活动状态执行,若应用不在后台状态,而是直接启动,则不会回调此方法。
- (void)applicationWillEnterForeground:(UIApplication *)application
{
NSLog(@"应用程序将要进入前台运行");
}
5、应用程序已经进入活动状态,即当应用程序重新启动,或者在后台转到前台,完全激活时,都会调用这个方法。
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSLog(@"应用程序已进入前台,处于活动状态");
}
6、当应用程序使用了太多的内存,操作系统会终止应用程序的运行,在终止前会调用这个方法。通常可以在这里进行内存清理工作,如释放一些当前不显示的页面,防止程序被终止。
-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
NSLog(@"系统内存不足,需要进行清理工作");
}
7、应用程序将要退出,且进程即将结束时会调用这个方法,一般很少主动调用,更多是内存不足时是被迫调用的,我们应该在这个方法里做一些数据存储操作和一些退出前的清理工作。
- (void)applicationWillTerminate:(UIApplication *)application
{
NSLog(@"应用程序将要退出");
}
8、当系统时间发生改变时执行,应用中一些依赖系统时间的配置,需要在此方法中作相应改变。
-(void)applicationSignificantTimeChange:(UIApplication *)application
{
NSLog(@"系统时间发生改变");
}
9、通过其它应用启动本应用时,会回调这个方法,url参数是其它应用调用 “openURL:” 方法时传过来的。
– (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
NSLog(@"其他应用启动本应用");
}
10、当客户端注册远程通知时,会回调下面两个方法。
如果成功,则回调第一个,客户端把deviceToken取出来发给服务端,push消息的时候要用。
如果失败了,则回调第二个,可以从error参数中看一下失败原因。
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
}
- (void)application:(UIApplication *)application
didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
}
注册远程通知时用以下方法:
UIRemoteNotificationType t
= UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:t];
11、当应用在前台运行中,收到远程通知时,会回调这个方法。当应用在后台状态时,点击push消息启动应用,也会回调这个方法。
– (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
}