안녕하세요. 초보 개발자입니다.
잠금화면 구현 중입니다.
리시버가 ACTION_SCREEN_OFF 신호를 받았을 때,
onReceive()에서
LockScreenActivity를 startActivity 시켜줍니다.
그러면,
LockScreenActivity가 만들어지는데,
onCreate() 메소드 안에,
setShowWhenLocked(true);
또는 FLAG_SHOW_WHEN_LOCKED
처리를 해줘서,
내 잠금화면이 기본 잠금화면보다 위에 떠 있게 하려고 합니다.
LogCat 창에서는 setShowWhenLocked(true) 코드를 만났을 때,
E/ViewRootImpl@9c9997[LockScreenActivity]: Surface is not valid.
라는 에러가 나옵니다.
(추측)
이미 화면이 꺼진 후, 액티비티가 보여지지 않은 상태에서
기본 잠금화면보다 위로 올리려고 하는 시도가 문제가 되는 것 같습니다.
하지만, SCREEN_OFF 상태에서 잠금화면을 만들어야 빠르게 뜨기 때문에,
OFF 상태에서 잠금화면을 만들고 싶습니다.
많은 잠금화면을 가진 어플들이 OFF 에서 액티비티를 만드는 걸로 알고 있는데,
이 문제를 어떻게 해결할 수 있을까요?