마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

잠금화면에서 setShowWhenLocked 메소드 호출시, Surface is not valid 에러 발생

0 추천

안녕하세요. 초보 개발자입니다.

 

잠금화면 구현 중입니다.

리시버가 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 에서 액티비티를 만드는 걸로 알고 있는데,

이 문제를 어떻게 해결할 수 있을까요?

 

 

라춘자 (400 포인트) 님이 2020년 8월 11일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...