에 불균일로 호출됩니다. 내 앱이 백그라운드로 이동하면 데이터 보호를 위해 현재 화면이 흐려집니다. 화면의 내용은 작업 관리자 창에 나타나서는 안되기 때문에 앱이 종료되기 전에 흐리게 루틴을 완료해야합니다. 모든 UI가 업데이트 될 때 주 루프에서 블러 링이 발생해야합니다. 일반 기본보기 위에 흐린보기가 추가됩니다. 그러나이 작업을 완료하는 데 약간의 시간이 걸리며 문제가됩니다.iOS가 applicationWillResignActive : 및 applicationDidBecomeActive :
Apple에서 권장하는대로 내 applicationWillResignActive :에서 내 흐림 루틴을 호출합니다. 이제 작업을 완료하는 데 0.2 초가 걸린다고 가정 해 봅시다. 이 짧은 기간 내에 응용 프로그램이 다시 활성화되면 applicationDidBecomeActive :가 호출되지 않습니다. 그러면 화면이 흐려지기 때문에 흐려집니다.
어쩌면 당신은 짧은 시간에 앱을 "닫고"열 수 있지만 우연히 화면의 위쪽 가장자리를 두드리고 조금 아래로 내려가는 것을 생각하면 어떨까요 상단 모서리에있는 버튼을 탭하려고합니다. 그러면 알림 센터가 몇 분의 1 초 정도 만 활성화됩니다. 충분 해.
그냥이 문제가 투명하게 만들기위한, 콘솔의 불균형 전화를 게시 할 예정이 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를 : 이 경우 ...? 이 의미가 있도록
들으 당신의 도움을 많이 우도는
위와 같이 작성한 응용 프로그램 WillResignActive는 아무 것도하지 않습니까? – GuybrushThreepwood
- 메인 루프의 다른 메소드 호출과 마찬가지로 콘솔에 노트를 게시하고 0.2 초 동안 메인 루프를 차단합니다. –
알림 센터를 "드래그 다운"하여 정상 속도로 실행하고 다시 위로 올리면 균형 잡힌 통화 로그 ("applicationWillResignActive - 일부 작업 수행"및 "위로 넘김": "applicationDidBecomeActive "). 그러나 화면 상단의 빠른 "탭 & 플립 다운/플립 업"을 수행하면 응용 프로그램이 다시 활성화되었지만 "applicationWillResignActive - 일부 작업 수행"만 나타납니다. –