아마도 가장 간단한 방법은 AppDelegate에 NSNotificationCenter
을 등록하여 모든 (또는 특정 발신자) 보낸 사람의 모든 이벤트를 수신하는 것입니다.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resetTimer) name:nil object:nil];
당신은 당신이 (심지어 일부 응용 프로그램에서 발생하지, 즉, 메모리 경고) 통지의 톤을 얻을 것이다으로 name
및 object
매개 변수 nil
전달에 조심해야합니다. 특정 이벤트 이름 및/또는 객체 목록을 알고 있거나 그 목록에서 볼 수 있다면 대신에 관찰 할 것입니다. 당신의 resetTimer
방법에서
, 당신은 단순히 (즉, timerStart = [NSDate now];
)
위의 단계 것/시간 이전 타이머를 무효화 일부 logout
메서드를 호출하고 현재 날짜에 바르를 설정하는 새로운 하나를 생성합니다 포 그라운드에있는 동안 앱을 관리하십시오.
앱이 백그라운드로 설정되면 타이머가 작동을 멈 춥니 다. 그러나 앱이 포 그라운드로 돌아 오면 [NSDate now]
과 timerStart
iVar 사이의 델타를 계산할 수 있습니다. 델타가 일정 간격보다 큰 경우 logout
메소드를 호출합니다. 그렇지 않은 경우 resetTimer
으로 전화하여 타이머를 다시 시작할 수 있습니다. 당신이 백그라운드로 앱이 사용자가 로그 아웃 할 예정임을 알려하려면
편집
, 당신은 UILocalNotification
를 사용할 수 있습니다. 응용 프로그램이 백그라운드로 들어갈 때 경고하도록 예약 할 수 있습니다. 응용 프로그램이 포 그라운드로 들어 오면 해당 알림을 취소하고 위에서 언급 한 단계를 수행 할 수 있습니다.
이 방법은 내 생각 이었지만 응용 프로그램이 백그라운드에있는 동안 사용자가 시간을 초과하면 알림 센터 알림을 고려하지 않았습니다. – Bot