2010-07-02 4 views
0

빠른 컨텍스트 스위칭을 위해 iOS-4 멀티 태스킹을 수행하는 동안 응용 프로그램의 마지막 상태를 저장하는 것과 관련하여 의심 스럽습니다.빠른 컨텍스트 스위칭 - iOS4

응용 프로그램에서 "- (void) applicationDidEnterBackground : (UIApplication *) application"의 마지막 상태를 수동으로 저장해야합니까? 아니면 iOS-4가 처리 할 것입니까? 이 언급 년대 비디오에서

은 다음과 같습니다 사전에

-(void)applicationDidEnterBackground:(UIApplication *)application { 
    // save app state 
    [self saveState]; 

    // reduce memory usages 
    .... 

    // prepare UI 
    .... 

    // close listening sockets 
    .... 
} 

감사합니다,

선일 응용 프로그램이 배경을 입력하면

답변

0

, 이제까지 포 그라운드로 돌아올 것이라는 보장이 없기를 . 어떤 종류의 통지없이 언제든지 종료 될 수 있습니다. 따라서 배경을 입력하면 상태를 저장하거나 잃을 위험이 있습니다. ,

은 백그라운드로 이동하기 전에 응용 프로그램 상태를 저장 :

애플 (http://developer.apple.com/iphone/library/documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html 소스)를 인용합니다.
메모리가 부족한 상태에서 배경 응용 프로그램이 공간을 비우기 위해 메모리에서 제거됩니다. 일시 중지 된 응용 프로그램은 먼저 제거되고 제거되기 전에 응용 프로그램에 알리지 않습니다. 결과적으로 백그라운드로 이동하기 전에 응용 프로그램은 필요한 경우 나중에 재구성하기에 충분한 상태 정보를 저장해야합니다. 응용 프로그램을 이전 상태로 복원하면 사용자에게 일관성이 유지되고 응용 프로그램의 기본 창의 스냅 샷이 다시 실행될 때 잠시 표시됩니다. "- applicationDidEnterBackground :와 (무효) : (UIApplication *) 응용 프로그램"

0

응용 프로그램은 수동의 마지막 상태를 저장해야합니까? 아니면 iOS-4가 처리 할 것입니까?

예, 앱을 종료 한 후 복원하려면 네가 수동으로 상태를 저장해야합니다.

0

배경/종료를 입력하기 전에 현재 상태를 저장하려면 앱 대리인에 다음 두 가지 방법을 사용해야합니다.

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

    /* 
    Sent when the application is about to move from active to inactive state. 
    This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) 
    or when the user quits the application and it begins the transition to the background state. 
    Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. 
    Games should use this method to pause the game. 
    */ 
} 
    - (void)applicationWillTerminate:(UIApplication *)application { 

    /* 
    Called when the application is about to terminate. 
    See also applicationDidEnterBackground:. 
    */ 
}