App开发 对生命周期的处理

//获取到当前所在的视图

- (UIViewController *)presentingVC:(UIApplication *)application{

UIWindow * window = application.keyWindow;

if (window.windowLevel != UIWindowLevelNormal){

NSArray *windows = [[UIApplication sharedApplication] windows];

for(UIWindow * tmpWin in windows){

if (tmpWin.windowLevel == UIWindowLevelNormal){

window = tmpWin;

break;

}

}

}

UIViewController *result = window.rootViewController;

while (result.presentedViewController) {

result = result.presentedViewController;

}

if ([result isKindOfClass:[MYTabBarViewController class]]) {

result = [(MYTabBarViewController *)result selectedViewController];

}

if ([result isKindOfClass:[UINavigationController class]]) {

result = [(UINavigationController *)result topViewController];

}

return result;

}

#p --当应用程序退出后台进行的操作

- (void)applicationDidEnterBackground:(UIApplication *)application {

//进入后台执行的操作

UIViewController *viewC = [self presentingVC:application];

NSLog(@"viewC==%@",[viewC class]);

if ([viewC class]== [LoginViewController class]) {

[[NSUserDefaults standardUserDefaults] setObject:@"1" forKey:@"root"];

}else{

[[NSUserDefaults standardUserDefaults] setObject:@"0" forKey:@"root"];

//[self goBackForViewController];

}

}

#p --应用程序进入后台再进入前台进行的操作

- (void)applicationWillEnterForeground:(UIApplication *)application {

//进入前台执行的操作---原生页面

if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"root"] isEqualToString:@"0"]) {

//进入原生页面的不作处理

[self goBackForViewController];

}

//如果停留在H5页面,重新加载,防止session过期问题

else{

[self showViewControllers];

}

}

Documents:在iOS应用开发中使用应用周期进行相关的操作,可以很好处理应用生命周期之间的交互问题

原文地址:https://www.cnblogs.com/tryFighting/p/8178300.html

时间: 2024-08-27 18:17:52

App开发 对生命周期的处理的相关文章

Android开发--Activity生命周期回顾理解

Activity和Servlet一样,都用了回调机制.我们通过类比servlet来学习Activity.当一个servlet开发出来之后,该servlet运行于Web服务器中.服务器何时创建servlet的实例,何时调用servlet的方法向用户生成响应,程序员无法控制,这种回调由服务器自行决定.Activity也一样,被开发出来,开发者只要在AndroidManifest.xml文件配置该Activity即可.至于该Activity何时被实例化,它的方法何时被调用,对开发者来说完全是透明的.

OSChina 周一乱弹 —— 软件开发的生命周期

Hello,周一,你来啦,听说你是 2014 年最后一个周一了,有什么感言吗? 小小编盼了好久,终于盼到了周一,我们正式搬家到南山区啦- @hosser:等了好久纵欲等到今天,盼了好久纵欲盼到周六... 在 2014 年里,你做了什么大事? @WuWarren : 昨天做了一件大事,把一新的大奔给撞了.今天正在定损.我表示我现在很低调.那么问题来了,程序员几年才能开上大奔? 说起钱的事情,程序猿的工资跨度非常大,那么 2014 你收获了几碗云吞? @永和 : 这就10块钱,你得写多少行代码才能换

android开发之生命周期

android开发之生命周期 一:Activity的生命周期: 这几天了了解了安卓Activity的生命周期,对于生命周期有了大概的理解: 一个Activity的生命周期也就是Activity从生成到运行,到登入其他界面时暂停,再到到当其他界面生成时停止,或者重新进入界面重写启动,直到最后activity被销毁的一系列过程:总的来说Activity是由Activity栈进管理,当来到一个新的Activity后,此Activity将被加入到Activity栈顶,之前的Activity位于此Acti

APP用户的生命周期价值(LTV)

什么是APP用户的生命周期及价值: 生命周期是指一个主体从开始到结束的发展过程,比如人生老病死的整个过程.APP用户的生命周期可以解释为用户从与APP建立关系开始到与APP彻底脱离关系的整个发展过程.生命周期价值(Lifetime Value,简称LTV)是指一个主体在整个生命周期中创造的价值总和.APP用户的生命周期价值可以理解为用户在与APP发生联系的整个生命周期中为APP带来的价值总和. APP用户生命周期分析: 不同于其他软件形式,对于APP产品用户的整个生命周期来说,一般会经历下图所示

【Xamarin开发IOS-IOS生命周期】

iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的. iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的.在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验. //开发app,我们要遵循apple公司的一些指导原则,原则如下: 1.应用程序的状态 状态如下: Not running  未运行  程序没启动 Inactive          未激活        程序在前台运行,不过没有接收到事件.在没

iOS-前后台切换(APP运行期间生命周期)

iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的. iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的.在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验. //开发app,我们要遵循apple公司的一些指导原则,原则如下: 1.应用程序的状态 状态如下: Not running 未运行 程序没启动 Inactive 未激活 程序在前台运行,但不能接受事件的处理.当应用要从一个状态切换到另一个不同状态

软件开发的生命周期描述

软件项目的生命周期: 项目计划 需求分析 设计(概要设计和详细设计) 编码 测试 发布 维护 项目计划阶段:走访客户,进行交流沟通,获得客户原始需求. 对客户的需求和市场等进行调研,分析,编写可行性分析报告. 通过不断的与客户沟通,找客户不同环节的用户进行交流来获取需求.召开评审会议,报告可行性分析,报告用户原始需求,报告项目远景规化. 需求分析阶段: 在客户原始需求的基础上不断与客户沟通,充分的熟悉和深入客户业务,获得充分的业务需求,完善用户需求和功能性需求,了解客户的相关约束而获得非功能性需

搭建数据仓库第01篇:数据仓库开发的生命周期

生命周期方法为我们在数据仓库开发过程中提供了路标的作用,生命周期方法的总体结构和步骤有 定义业务需求 技术路径 技术架构设计 产品的选择和安装 数据路径 维度建模 物理设计 ETL设计和开发 BI应用路径 BI应用设计 BI应用开发 后续会按照这个顺序依次做些总结和思考.

Servlet程序开发-- Servlet生命周期

生命周期是一个程序的存在周期,受容器管理,所以容器决定生命周期. 生命周期包括 加载,初始化,服务,销毁,卸载 5个部分 加载:第一次使用的时候加载 初始化:init方法, 失败的话,直接卸载,如果成功的话,进行服务的操作,如果服务不再使用,进行销毁再卸载 服务:service方法 销毁:destroy方法 代码: package org.lxh.servletdemo ; import java.io.* ; import javax.servlet.* ; import javax.serv