App开发 对生命周期的处理

Posted tryFighting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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应用开发中使用应用周期进行相关的操作,可以很好处理应用生命周期之间的交互问题

以上是关于App开发 对生命周期的处理的主要内容,如果未能解决你的问题,请参考以下文章

WePY开发小程序:生命周期

微信小程序开发之详解生命周期方法

跟着Google学Android —— 3.1 管好Activity的生命周期

WatchOS开发教程之一: Watch App架构及生命周期

React Native组件生命周期

app生命周期之即将关闭