2011-03-23 7 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

関連する問題