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

wake lock 질문입니다 (재질문)

0 추천

카톡을 예로 설명하겠습니다.

 
두가지 상황 다 화면이 꺼져있는 상태를 기준으로 적어보겠습니다..
 
첫번째 상황 :  푸시가 오면 앱을 최초부터 실행하는 상황
1. 카톡이 background 던지 foreground 던지 실행중이 아니다. (화면이 꺼져있으니 foreground 일리는 없겠죠?)
2. 푸시가 온다.
3. 서비스에서 아무것도 없는 까만 액티비티를 호출한다.
4. 아무것도 없는 까만 액티비티에서는 WindowManager 를 이용해 화면을 강제로 켠다.
5. 화면을 켠 후 "누구누구로부터 카톡이 도착했습니다" 같은 다이얼로그를 띄운다.
 
두번째 상황 :  앱을 사용하다가 홈버튼 등을 눌러 background 상태에 놔두고 있다가 화면이 꺼져있는 상황
1. 카톡이 background 에서 실행중이다. <액티비티는 pause() 상태일듯.>
2. 푸시가 온다.
3. 서비스에서 아무것도 없는 까만 액티비티를 호출한다.
4. 여기서 문제입니다. 디버그를 찍어보면 똑같이 WindowManager. 어쩌구 돼있는 잠금화면 키는 부분을 타긴하는데
화면이 안켜집니다.
 
제 생각에는 얘가 첨부터 앱을 실행할때는 onCreate() 에서부터 타니까 화면ㅇ ㅣ켜지는 것 같고
한번 실행중인데 호출이 오면 안켜지는 것 같습니다.
 
물론 위의 상황은 카톡이라 까만 액티비티는 onCreate()부터 항상 불리니까 화면이 켜질수도 있지만
저같은경우에는 카톡처럼 까만화면에 다이얼로그만 있는 화면을 띄우는게 아니라
저의 어플 MainActivity 를 띄우는거라 앱 실행 중 아예 종료하지 않고 나가게되면 onPause()상태입니다.
 
두번째 상황에서 화면을 켤 수 있는 방법좀 알려주시면 감사하겠습니다..
 
제가 화면 켤 때 쓴 소스는 아래와 같습니다.
 
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD //잠금 화면 위에 뜨게 하기.
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); //화면 깨우기
 
이것과 wakelock 퍼미션
윤둥이 (4,560 포인트) 님이 2013년 8월 22일 질문

답변 달기

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