0

사용자 비활성 (예 : 화면이 검게 표시되고 잠시 동안 터치하지 않은 상태에서 휴대 전화가 잠기는 경우)로 인해 앱을 종료하기 전에 몇 가지 방법을 수행하고 싶습니다. 이 경우 어떤 메소드가 호출됩니까?비 활동으로 인해 장치 화면이 꺼질 때 또는 그 전에 즉시 방법을 수행하는 방법은 무엇입니까?

내가 추측하고있어 :

  • 이 방법 /이 방법은 내 AppDelegate에 클래스의 일부가 될 것입니다.
  • 이 방법/이들 방법은 -[UIAppDelegate applicationWillResignActive:], -[UIAppDelegate applicationDidEnterBackground:], -[UIAppDelegate willTerminate:]과 유사 할 것이다.

UIApplicationDelegate의 설명서에서 화면이 꺼져있을 때 트리거하는 방법이나 방법에 관한 내용이 없습니다. 마찬가지로 "메소드 비 활동 앱 화면에서 객관적인 C를 벗어남"과 같은 용어를 검색하는 것은 아무 것도 밝혀 내지 못했습니다.

이 질문 (What method is called before the screen goes black after inactivity?)의 사전 구체화에서 여러 사람이 중복 가능성이있는 스택 오버플로 게시물 iPhone: Detecting user inactivity/idle time since last screen touch으로 나를 안내했습니다. 그러나, 나는 내 질문은 매우 다르다 믿는다 :

  • 내 질문 : -[UIAppDelegate applicationWillResignActive:] 등 유사한 목표 - C의 기본 방법이 있습니다. 앱이 아직 열린 상태에서 일정 기간 동안 화면이 어두워지면 변경되는 속성 또는 속성? 그렇지 않다면 어떻게 그런 방법없이 비슷한 논리를 구현할 수 있습니까?
  • 다른 사용자의 질문 : 화면 상태에 관계없이 일정 기간 동안 사용자가 사용하지 않으면 어떻게 메소드를 트리거 할 수 있습니까?

사용자가 설정에서 "자동 잠금"으로 설정 한 시간을 얻는 방법이 있으면 다른 질문이 내 질문에 어떻게 답할 수 있는지 보았습니다 (1 분, 2 분, 3 분 , 4 분, 5 분 또는 전혀 사용하지 않음), UIApplication 설명서에 그러한 방법이나 속성이 표시되지 않습니다. 스크린이 꺼지면이 루프가 실행을 중단한다는 가설/가정으로 앱이 1 분이 지나지 않은 상태로 계속 실행 중인지 확인하는 것이 타협이라고 생각하지만, 이는 나에게 덜 비협조적인 것처럼 보일 것입니다. 최적의 솔루션입니다.

내가이 질문을하는 이유는 내 사용자가 내 앱을 언제 사용하는지 추적하고 있기 때문입니다. 나는 세션이 시작될 때와 끝날 때를 포함하는 세션의 매우 기본적인 핵심 데이터베이스 데이터베이스를 만들고 있습니다. 사용자 비활성으로 인해 화면이 검은 색으로 변할 때를 결정할 방법을 찾지 못했기 때문에 현재 내 데이터가 정확하지 않습니다.

답변

0

내가 아는 한, 기기가 잠겨있을 때 앱은 일시 중지되어 비활성 백그라운드 앱으로 전송 된 것과 똑같은 방식으로 처리됩니다. 나는 이것이 단순한 국가 보존/복원 문제라고 생각한다. 그래서 타이머는 필요하지 않을 것이다. 상태에 대한 아래의 링크를 확인하십시오. Apple's Guide on states

2

앱이 배경을 입력 할 때들을 수있는 'UIApplicationDidEnterBackgroundNotification'알림이 있습니다. 다음과 같이 등록하고 여기에 표시하는 선택기를 처리 할 수 ​​

[[NSNotificationCenter defaultCenter] addObserver:someObject 
             selector:@selector(someMethodName:) 
              name:@"UIApplicationDidEnterBackgroundNotification" object:nil]; 

은 유사 앱이 다시 전경에있을 때 알 수 있도록 'UIApplicationDidEnterForegroundNotification'을들을 수 있습니다.

관련 문제