AppDelegate

AppDelegate为整个应用的一个代理,提供程序启动、退出等类似监控的接口。

IOS AppDelegate方法全解


1.当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如来电
    - (void)applicationWillResignActive:(UIApplication *)application

    {

        NSLog(@"应用程序将要进入非活动状态,即将进入后台");

    }
2.应用程序已经进入后台运行
    - (void)applicationDidEnterBackground:(UIApplication *)application

    {

        NSLog(@"如果应用程序支持后台运行,则应用程序已经进入后台运行"); //如果需要退出后台,则在这里加上:exit(0);

    }
3.应用程序将要进入活动状态执行
    - (void)applicationWillEnterForeground:(UIApplication *)application

    {

        NSLog(@"应用程序将要进入活动状态,即将进入前台运行");

    }
4.应用程序已经进入活动状态
    - (void)applicationDidBecomeActive:(UIApplication *)application

    {

        NSLog(@"应用程序已进入前台,处于活动状态");

    }
5.应用程序将要退出,通常用于保存数据和一些退出前的清理工作
    - (void)applicationWillTerminate:(UIApplication *)application

    {

        NSLog(@"应用程序将要退出,通常用于保存数据和一些退出前的清理工作");

    }
6.当设备为应用程序分配了太多的内存,操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作,防止程序被终止
    -(void)applicationDidReceiveMemoryWarning:(UIApplication *)application

    {

        NSLog(@"系统内存不足,需要进行清理工作");

    }
7.当系统时间发生改变时执行
    -(void)applicationSignificantTimeChange:(UIApplication *)application

    {

        NSLog(@"当系统时间发生改变时执行");

    }
8.推送消息时,获取设备的tokenid
    -(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

    {

        NSLog(@"%@",deviceToken);

    }
9.tokenid获取失败时,做相应处理
    - (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)error

    {

        NSLog(@"fail to register for remoteNotifications: %@", [err description]);

    }
10.接收到推送消息处理
    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

        //设置icon上的标记数字设置为0;

        //application.applicationIconBadgeNumber = 0;

        NSLog(@"%@",userInfo);

    }
11.当程序载入后执行
    -(void)applicationDidFinishLaunching:(UIApplication *)application

    {

        NSLog(@"当程序载入后执行");

    }

系统启动代理
//创建UIWindos
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//初始化应用系统需要显示的第一个页面  
ViewController *vc = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
//配置window窗口的rootViewController实例
self.window.rootViewController = vc;
 
[self.window makeKeyAndVisible];  
return YES; 

@implementation AppDelegate

/**
*  app启动完毕后就会调用
*  在启动图标消失后进入该方法,并且程序进入后台后,再次进入时不再调用
*/
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   NSLog(@"程序已经启动...");
   return YES;
}

/**
*  程序失去焦点后执行,一般数据保存操作在这里执行
*/
- (void)applicationWillResignActive:(UIApplication *)application {
   NSLog(@"程序将要失去焦点...");
}

/**
*  app进入后台的时候调用 注意:进入后台时先失去焦点再进入后台
*/
- (void)applicationDidEnterBackground:(UIApplication *)application {
   NSLog(@"程序已经进入后台...");
}

/**
*  app进入前台的时候调用
*/
- (void)applicationWillEnterForeground:(UIApplication *)application {
   NSLog(@"程序将要进入前台...");
}

/**
*  程序被激活(获得焦点)后执行 注意:先进入前台再获取焦点<span style="font-family: Arial, Helvetica, sans-serif;">,一般数据恢复操作在这里执行</span>
*/
- (void)applicationDidBecomeActive:(UIApplication *)application {
   NSLog(@"程序已经获得焦点...");
}

/**
*  程序终止时执行
*/
- (void)applicationWillTerminate:(UIApplication *)application {
   NSLog(@"程序将要终止...");
}

/**
*  清除不需要再使用的内存
*/
-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application{
   NSLog(@"applicationDidReceiveMemoryWarning");
}

@end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容