Iphone 检查应用程序是否从非活动状态恢复到首次启动状态?
我有一个NSTimer,当我的应用程序退出活动状态时,我会停止它,稍后当应用程序再次变为活动状态时,我会重新启动它。我没有意识到的是,当我的应用程序第一次启动时,Iphone 检查应用程序是否从非活动状态恢复到首次启动状态?,iphone,objective-c,cocoa-touch,ios,multitasking,Iphone,Objective C,Cocoa Touch,Ios,Multitasking,我有一个NSTimer,当我的应用程序退出活动状态时,我会停止它,稍后当应用程序再次变为活动状态时,我会重新启动它。我没有意识到的是,当我的应用程序第一次启动时,applicationwillresignative会启动(非常明显)。因此,发生的情况是我的NSTimer启动不正确(当应用程序首次启动时)。我的问题是,有没有办法检查应用程序是否从非活动状态恢复到第一次启动状态 - (void)applicationWillResignActive:(UIApplication *)applicat
applicationwillresignative
会启动(非常明显)。因此,发生的情况是我的NSTimer启动不正确(当应用程序首次启动时)。我的问题是,有没有办法检查应用程序是否从非活动状态恢复到第一次启动状态
- (void)applicationWillResignActive:(UIApplication *)application {
// STOP CORE TIMER
[[[self mapController] coreTimer] invalidate];
[[self mapController] setCoreTimer:nil];
}
似乎只有当应用程序从后台返回时才会触发。刚刚测试过,不会在发布时调用
讨论
在iOS 4.0及更高版本中,此方法是
作为从
将背景设置为活动状态。
您可以使用此方法撤消许多
您对应用程序所做的更改
入境申请
背景。对该方法的调用是
总是接著打电话给
ApplicationIDBecomeActive:方法,
然后将应用程序从
将非活动状态转换为活动状态
但愿我早知道这件事。我只是在ApplicationIDBecomeActive中检查了一个布尔值,看看它是否刚刚启动。非常感谢,有一个问题:我处理用户锁定iPhone(顶部按钮),然后使用屏幕滑块解锁,在这种情况下,应用程序永远不会进入后台(无论如何也不会很快),它只是从applicationWillResignActive转到applicationdidebecomeactive。根据我的测试,
applicationWillResignActive
和applicationdidebecomeactive
在用户锁定和解锁手机时会立即被调用。这是正确的,而且启动时也会调用applicationdidebecomeactive,这是我的问题。我认为在我的例子中,答案是添加一个标志(正如Jesse建议的那样)来记录应用程序所处的状态。@fuzzygoat是的,我认为这就是方法。我没有任何新想法。
- (void)applicationDidBecomeActive:(UIApplication *)application {
// START CORE TIMER
[[self mapController] setCoreTimer:[NSTimer
scheduledTimerWithTimeInterval:ONE_SECOND
target:[self mapController]
selector:@selector(timerDisplay:)
userInfo:nil
repeats:YES]];
}