1

特定のプッシュでタイマーが開始され、アプリが閉じていてもタイマーが継続する機能を追加しようとしています。私のポイントが10で、タイマーが開始したとしましょう。アプリを閉じたら、次回アプリを開いたら、

1-20分前の場合、カウントダウンタイマーが実行されていることが表示されます

2-アプリで20分後に再度起動すると、ポイントが10に追加されます。

さて、これを行うのにどのような種類のタイマーまたはクラスが役立ちますか?

よろしく

4

3 に答える 3

1

アプリ終了のデリゲートで時間を NSUserdefaults に保存し、アプリを起動している間にそれを読み返し、その時間を追加します。

于 2013-01-18T13:38:21.943 に答える
1

NSTimerアプリがバックグラウンドであっても600秒以上継続せず、残りはアプリを終了します。

あなたはむしろこれを行うことができます:

NSString *prevTimestamp = [NSString stringWithFormat:@"%d", 
                         [[NSDate date] timeIntervalSince1970]];

prevTimestampこれを に保存NSUserDefaultsし、アプリに戻ったときに、

NSString *nowTimestamp = [NSString stringWithFormat:@"%d", 
                         [[NSDate date] timeIntervalSince1970]];

時差になります[nowTimestamp floatValue] - [prevTimestamp floatValue]

于 2013-01-18T13:40:59.393 に答える
0

applicationdelegate 内には、次の機能があります。

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

-(void)applicationWillEnterForeground:(UIApplication *)application;

これらの関数から、次のような方法で時間を追跡できます。

-(void)applicationDidEnterBackground:(UIApplication *)application
{
    backgroundTime = [[NSDate date] timeIntervalSince1970]; 
}

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

    double timetoAppend = [[NSDate Date] timeIntervalSince1970] - backgroundTime];

    // from here you need to add the timetoAppend to your own variable

}
于 2013-01-18T13:44:00.580 に答える