2011-03-23 4 views
1

멀티 태스킹에 문제가 있습니다. iphone이 내 응용 프로그램을 배경으로두고 몇 초가 지났는지 알아야합니다. NSDate 개체와 함께 applicationDidEnterBackgroundapplicationWillEnterForeground을 사용하려고 시도했지만 시간을 성공적으로 가져올 수 없습니다.iphone 응용 프로그램의 배경과 전경 사이의 시간을 계산 하시겠습니까?

아무도 도와 드릴 수 있습니까?

편집 :

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

    backgroundDate = [NSDate date]; 
    NSLog(@"background time= %@", backgroundDate); 

} 


- (void)applicationWillEnterForeground:(UIApplication *)application { 
    //– timeIntervalSinceNow 

    NSLog(@"background time2= %@", backgroundDate); 

    NSDate *date = [NSDate date]; 
    NSLog(@"foreground time= %@", date); 

} 

로그 : 당신이 backgrounddate을 유지해야

2011-03-23 12:47:58.405 Sanal Market[1783:207] background time= 2011-03-23 10:47:58 +0000 

2011-03-23 12:48:00.730 Sanal Market[1783:207] background time2= <CAContextImpl: 0x5416e10> 

2011-03-23 12:48:00.731 Sanal Market[1783:207] foreground time= 2011-03-23 10:48:00 +0000 
+0

어디에 문제 야를 ? – ryyst

+0

나는 serhats가 applicationDidEnterBackground와 applicationWillEnterForeground 이벤트 사이에 전달되는 시간을 얻는 방법을 알고 싶어한다고 생각한다. Vaibhav Tekam과 같은 –

+0

입니다. 문제는 내가 어떻게하는지 모른다. – serhats

답변

1

[NSDate date] 오토 릴리즈 객체를 반환하고, 오토 릴리즈 풀을 배출 한 후이 사라 졌어요 .

[backgroundDate release]; 
backgroundDate = [[NSDate date] retain]; 

을 시도하거나 속성을 만들고 세터를 사용합니다. self.backgroundDate = [NSDate date];


당신은 당신이 NSUserDefaults에 날짜를 저장해야 배경에있는 동안 응용 프로그램이 운영 체제에서 종료하도록 강요했다 경우에도 시간을 계산하려면 다음

// save date in userdefaults 
[[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"goingToBackGroundDate"]; 

// get date back to calculate time in background 
NSDate *goingToBackGroundDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"goingToBackGroundDate"]; 
+0

감사합니다. – serhats

관련 문제