iOS不平衡调用applicationWillResignActive:和applicationDidBecomeActive:

iOS不平衡调用applicationWillResignActive:和applicationDidBecomeActive:,第1张

概述当我的应用程序转到后台时,由于数据保护原因,它必须模糊当前屏幕.不得在任务管理器窗口中看到屏幕内容,因此必须在应用程序退出之前完成模糊程序.每次UI更新时,模糊都必须在主循环上进行.它只是在普通主视图上添加模糊视图.但是,这需要一点时间才能完成,这就是问题所在. 我从applicationWillResignActive调用我的模糊程序:正如Apple建议的那样.现在让我们说完成任务需要0.2秒. 当我的应用程序转到后台时,由于数据保护原因,它必须模糊当前屏幕.不得在任务管理器窗口中看到屏幕内容,因此必须在应用程序退出之前完成模糊程序.每次UI更新时,模糊都必须在主循环上进行.它只是在普通主视图上添加模糊视图.但是,这需要一点时间才能完成,这就是问题所在.

我从applicationWillResignActive调用我的模糊程序:正如Apple建议的那样.现在让我们说完成任务需要0.2秒.如果应用程序将在这么短的时间内重新激活,则不会调用applicationDIDBecomeActive:(它应该再次取消我的屏幕,因此它会模糊不清).

也许您认为在如此短的时间内“关闭”和“打开”应用程序不是正常的用户行为,但考虑点击屏幕的上边缘并向下移动一点,只是偶然的尝试点击一个位于上边缘的按钮.这将激活通知中心仅几分之一秒.这就够了.

只是为了使这个问题透明,看看这个AppDelegate将在控制台中发布不平衡的调用:

@implementation UHAppDelegate    - (BOol)application:(UIApplication *)application dIDFinishLaunchingWithOptions:(NSDictionary *)launchOptions    {        return YES;    }    - (voID)applicationWillResignActive:(UIApplication *)application    {        NSLog(@"applicationWillResignActive - performing some tasks...");         // let the main loop do some work...        [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.2]];    }    - (voID)applicationDIDEnterBackground:(UIApplication *)application    {    }    - (voID)applicationWillEnterForeground:(UIApplication *)application    {    }    - (voID)applicationDIDBecomeActive:(UIApplication *)application    {        NSLog(@"applicationDIDBecomeActive");    }    - (voID)applicationWillTerminate:(UIApplication *)application    {    }    @end

任何想法如何实现对applicationWillResignActive和applicationDIDBecomeActive的平衡调用次数:在这种情况下……?

非常感谢你的帮助
你做

解决方法 经过一些测试,我意识到可能会有一些妥协.

似乎applicationDIDBecomeActive:仅与applicationDIDEnterBackground平衡:

在我的情况下,这意味着模糊应该在后一种方法中进行.在一天结束时,这意味着如果用户通过调用通知中心或通过调用任务管理器“离开”我的应用程序,将不会出现屏幕模糊.但是,关于数据安全性,这不应该是一个重量级问题,因为很明显只有访问我的应用程序的用户才能执行这些步骤.

当通过单击HOME一次,进入待机状态或通过任务管理器更改前台应用程序来放置应用程序时,applicationDIDEnterBackground:被调用,经过一些测试后,似乎从 *** 作系统获得足够的时间来执行主要模糊环.

但是,如果你坚持原来的问题,这仍然没有解决.

总结

以上是内存溢出为你收集整理的iOS不平衡调用applicationWillResignActive:和applicationDidBecomeActive:全部内容,希望文章能够帮你解决iOS不平衡调用applicationWillResignActive:和applicationDidBecomeActive:所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1022192.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存