IOS applicationWillResignActive

一、挂起
 
当有电话进来或者锁屏,这时你的应用程会挂起,在这时,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. }

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.       //一般在这放弃键盘和alertview actionsheet等等
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

时间: 2024-11-07 13:58:24

IOS applicationWillResignActive的相关文章

IOS applicationWillResignActive挂起

一.挂起 当有电话进来或者锁屏,这时你的应用程会挂起,在这时,UIApplicationDelegate委托会收到通知,调用 applicationWillResignActive 方法,你可以重写这个方法,做挂起前的工作,比如关闭网络,保存数据. C代码   1. - (void)applicationWillResignActive:(UIApplication*)application{    2.     3. }       当你的程序被挂起后他不会在后台运行.   二.复原 当程序复

iOS程序执行顺序和UIViewController 的生命周期(整理)

说明:此文是自己的总结笔记,主要参考: iOS程序的启动执行顺序 AppDelegate 及 UIViewController 的生命周期 UIView的生命周期 言叶之庭.jpeg 一. iOS程序的启动执行顺序 程序启动顺序图 iOS启动原理图.png 具体执行流程 程序入口进入main函数,设置AppDelegate称为函数的代理 程序完成加载[AppDelegate application:didFinishLaunchingWithOptions:] 创建window窗口 程序被激活[

IOS Application生命周期

应用程序的状态 Not running(未运行):程序没启动 Inactive(未激活):程序在前台运行,不过没有接收到事件.在没有事件处理情况下程序通常停留在这个状态 Active(激活):程序在前台运行而且接收到了事件.这也是前台的一个正常的模式 Backgroud(后台):序在后台而且能执行代码,大多数程序进入这个后台后会在在这个状态上停留一会.时间到之后会进入挂起状态(Suspended).有的程序经过特殊的请求后可以长期处于Backgroud状态 Suspended(挂起):程序在后台

iOS App的状态

Refer: App States and Multitasking iOS设备的系统资源有限,所以App在前台运行和在后台运行的时候是有区别的.为了节省电池寿命和用户体验,App在后台运行的时候,有一些功能会被操作系统限制. 当App在前台运行的时候,可以处理系统发送的touch事件.UIKit基础架构已经做了大部分的工作用来把事件分发到自定义的对象上,开发者只需要重写一些相应的方法. 在App的开发过程中建议遵守的方针: (Required)对状态的切换做出适当的相应,否则可能会造成数据丢失

iOS 微信支付点击左上角返回解决方案

在网了搜了一些解决方案,感觉并不是那么严谨,于是自己动手搞了一下,直接说思路 iOS调起第三方支付和安卓还不一样,安卓是把第三方的支付SDK直接镶嵌在自己的App中,而iOS由于沙盒机制,各个应用之间相互独立,应用之间的调用只有通过系统留下的唯一入口scheme, 所以iOS调起第三方支付是在两个App之间相互切换的.以下从两个角度解析iOS吊起第三方支付 1.支付之前点击取消或者左上返回 (1)点击支付是App显示进入非活跃状态,再进入后台 -[AppDelegate applicationW

IOS项目集成ShareSDK实现第三方登录、分享、关注等功能(转)

原文链接:http://blog.csdn.net/daleiwang/article/details/34081231 (1)官方下载ShareSDK iOS 2.8.8,地址:http://sharesdk.cn/ (2)根据实际情况,引入相关的库,参考官方文档. (3)在项目的AppDelegate中一般情况下有三个操作,第一是注册ShareSDK,第二是注册各个平台的账号,第三是关于微信等应用的回调处理. [objc] view plain copy print? // //  AppD

iOS面试必备-iOS基础知识

近期为准备找工作面试,在网络上搜集了这些题,以备面试之用. 插一条广告:本人求职,2016级应届毕业生,有开发经验.可独立开发,低薪求职.QQ:895193543 1.简述OC中内存管理机制. 答:内存管理机制:使用引用计数管理,分为ARC和MRC,MRC需要程序员自己管理内存,ARC则不需要.但是并不是 所有对象在ARC环境下均不需要管理内存,子线程和循环引用并不是这样.与retain配对使用的是release,retain代表引用计 数+1,release代表引用计数-1,当引用计数减为0时

iOS应用崩溃日志分析

转自raywenderlich 作为一名应用开发者,你是否有过如下经历? 为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作.它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会闪退 ! 如果你跟我一样是个完美主义者,你肯定想将应用做到尽善尽美.于是你打开代码准备修复闪退的问题……但是,从何处着手呢? 这时iOS崩溃日志派上用场了.在大多数情况下,你能从中了解到关于闪退的详尽.有用的信息. 通过本教程,你将学习到一些常见的崩溃日志案例,以及如何从开发设备和

【转】iOS开发24:使用SQLite3存储和读取数据

转自:http://my.oschina.net/plumsoft/blog/57626 SQLite3是嵌入在iOS中的关系型数据库,对于存储大规模的数据很有效.SQLite3使得不必将每个对象都加到内存中. 基本操作: (1)打开或者创建数据库 sqlite3 *database; int result = sqlite3_open("/path/databaseFile", &database); 如果/path/databaseFile不存在,则创建它,否则打开它.如果