특정 활동이 표시되지 않는 경우에만 특정 상황에서 내 앱에서 알림을 시작하고 싶습니다.잠금 화면이 잠금 해제되었음을 확인하십시오.
나는 onCause/onDestroy를 사용하여 Activity를 생성하고 파괴 할 때 Service의 bind/unbind를 할 수 있었다.이 Activity가 onPause/onResume 메소드를 통해 볼 수있는 경우 다음 코드처럼 boolean으로 저장한다. 쇼 우는 :
public void onCreate(Bundle savedInstanceState) {
// ...
bindService(...);
}
public void onDestroy() {
// ...
unbindService(mConnection);
}
public void onResume() {
// ...
// this method sets to true the Service's boolean which retain Activity's visibility.
mService.registerActivity(true);
}
public void onPause() {
mService.registerActivity(false);
}
그리고 서비스에, 나는 알림을 시작하려면이 부울을 확인합니다.
특정 활동을 제외하고 모든 경우에 적용됩니다.이 활동에서 앱을 열었을 때 잠금 화면이 사용 설정된 경우입니다.
잠금 화면이 나타나면 몇 가지 테스트를 통해 Activity.onPause 메서드가 호출됩니다. 잠금 화면이 잠겨있을 때 Activity.onResume 메서드가 호출되기를 바랬는데 아무 일도 일어나지 않았습니다. 전원 버튼을 눌러 잠금 화면을 호출하면 Activity.onResume 메서드가 이미 호출됩니다. 이런 의미에서 내가하고있는 일은 옳지 않습니다.
사용자가 잠금 화면을 잠금 해제 할 때만 Activity.onResume 메서드가 호출되도록하려면 어떻게해야합니까? 또는 ... 잠금 화면이 잠금 해제되어 있고 사용자가 활동을보고 있는지 어떻게 확인할 수 있습니까?
윌 'Activity.onWindowFocusChanged (부울 hasFocus)'필요한 값을 반환합니까? – techiServices
@techiServices 감사합니다! 이것은 완벽하게 작동했습니다. 그러나 나는이 "대답"을 받아 들일 수 없다. 동의 할 수 있도록 질문에 대답하십시오. 승인? – borges
답변 됨. 많은 감사합니다. – techiServices