iOS 在viewController中监听Home键触发以及重新进入界面的方法

来源:互联网 发布:软件研发 软件开发 编辑:程序博客网 时间:2024/05/20 14:23

iOS 在viewController中监听Home键触发以及重新进入界面的方法  


第一步:
创建2个NSNotificationCenter监听
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillResignActive:)name:UIApplicationWillResignActiveNotification object:nil]; //监听是否触发home键挂起程序.    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidBecomeActive:)name:UIApplicationDidBecomeActiveNotification object:nil]; //监听是否重新进入程序程序.


第二步:
实现2个NSNotificationCenter所触发的事件方法
- (void)applicationWillResignActive:(NSNotification *)notification{    printf("按理说是触发home按下\n");}- (void)applicationDidBecomeActive:(NSNotification *)notification{    printf("按理说是重新进来后响应\n");}



注: 在home键触发后,AppDelegate响应的方法为:

- (void)applicationDidEnterBackground:(UIApplication *)application{ /* Use this method to release shared resources, save user data, invalidate timers,

and store enough application state information to restore your application to its current state in case it is terminated later. If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. */}

应用程序挂起、复原与终止— IOS开发

 (2012-04-06 17:06:20)
转载
标签: 

iphone学习

 

杂谈

 

 

一、挂起

当有电话进来或者锁屏,这时你的应用程会挂起,在这时,UIApplicationDelegate委托会收到通知,调用 applicationWillResignActive 方法,你可以重写这个方法,做挂起前的工作,比如关闭网络,保存数据。

C代码  收藏代码
  1. (void)applicationWillResignActive:(UIApplication*)application{    
  2.     
  3.    
 

当你的程序被挂起后他不会在后台运行。

 

二、复原

当程序复原时,另一个名为 applicationDidBecomeActive 委托方法会被调用,在此你可以通过之前挂起前保存的数据来恢复你的应用程序:

C代码  收藏代码
  1. (void)applicationDidBecomeActive:(UIApplication*)application{    
  2.     
  3.    
 

注意:应用程序在启动时,在调用了 applicationDidFinishLaunching 方法之后也会调用 applicationDidBecomeActive 方法,所以你要确保你的代码能够分清复原与启动,避免出现逻辑上的bug。

 

三、终止

当用户按下按钮,或者关机,程序都会被终止。当一个程序将要正常终止时会调用 applicationWillTerminate方法。但是如果长主按钮强制退出,则不会调用该方法。这个方法该执行剩下的清理工作,比如所有的连接都能正常关闭,并在程序退出前执行任何其他的必要的工作:

C代码  收藏代码
  1. (void)applicationWillTerminate:(UIApplication*)application{    
  2.     
  3.    
 

来源: http://blog.csdn.net/iukey/article/details/7311115

 

 

Java代码  程序开始 !"); return YES; } - (void)applicationWillResignActive:(UIApplication *)application { NSLog(@"\n ===> 程序暂行 !"); } - (void)applicationDidEnterBackground:(UIApplication *)application { NSLog(@"\n ===> 程序进入后台 !"); } - (void)applicationWillEnterForeground:(UIApplication *)application { NSLog(@"\n ===> 程序进入前台 !"); } - (void)applicationDidBecomeActive:(UIApplication *)application { NSLog(@"\n ===> 程序重新激活 !"); } - (void)applicationWillTerminate:(UIApplication *)application { NSLog(@"\n ===> 程序意外暂行 !"); UIDevice *device = [UIDevice currentDevice]; }" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> 收藏代码
  1. (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  2.  
  3.     // Override point for customization after application launch.  
  4.     NSLog(@"\n ===> 程序开始 !");   
  5.       
  6.     return YES;  
  7.  
  8.                               
  9. (void)applicationWillResignActive:(UIApplication *)application  
  10.  
  11.       
  12.     NSLog(@"\n ===> 程序暂行 !");   
  13.  
  14.   
  15. (void)applicationDidEnterBackground:(UIApplication *)application  
  16.  
  17.       
  18.      NSLog(@"\n ===> 程序进入后台 !");   
  19.  
  20.   
  21. (void)applicationWillEnterForeground:(UIApplication *)application  
  22.  
  23.       
  24.      NSLog(@"\n ===> 程序进入前台 !");   
  25.  
  26.   
  27. (void)applicationDidBecomeActive:(UIApplication *)application  
  28.  
  29.     NSLog(@"\n ===> 程序重新激活 !");   
  30.       
  31.  
  32.   
  33. (void)applicationWillTerminate:(UIApplication *)application  
  34.  
  35.     NSLog(@"\n ===> 程序意外暂行 !");   
  36.   
  37.     UIDevice *device [UIDevice currentDevice];  
  38.       
  39.  
 

首次运行

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

- (void)applicationDidBecomeActive:(UIApplication *)application

 

首次关闭(home):

- (void)applicationWillResignActive:(UIApplication *)application

- (void)applicationDidEnterBackground:(UIApplication *)application

 

再次运行:

- (void)applicationWillEnterForeground:(UIApplication *)application

- (void)applicationDidBecomeActive:(UIApplication *)application

 

再次关闭:

- (void)applicationWillResignActive:(UIApplication *)application

- (void)applicationDidEnterBackground:(UIApplication *)application

0 0
原创粉丝点击