안녕하세요 GCM을 이용한 push 어플을 구현중입니다..!
푸시가 왔을 때 서비스가 실행됩니다.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
액티비티 onCreate()에서는 위의 api를 이용하여 죽은 화면을 살리고 액티비티를 실행니다~!
여기서 말하는 액티비티는 뭐.. 카톡이 왔을 때 화면 켜지고 뜨는 알림창있는 까만화면정도라고 생각해주시면 되겠습니다.
WindowManager 를 이용한 위의 API 들은 onCreate() 에서만 사용이 가능한듯 합니다.
그래서 앱이 죽어있는 상태에서는 푸시가 왔을 때 정상적으로
서비스에서 startActivity 를 호출하여 액티비티가 onCreate () 부터 실행되니 화면이 켜지고 정상적으로 푸시알림이 뜨는게 보이는데요.
앱이 실행중일때가 문제입니다. 앱이 실행중일 때에도 푸시를 받을 수 있는데
앱은 아직 죽지않고 화면이 꺼져있다면 액티비티가 onPause() 상태 이기 때문에..
푸시를 받은 서비스가 startActivity를 해주어도 onCreate() 로 돌아오지 않아 화면이 켜지지 않는 문제가 생깁니다.
카톡 얘네는 앱이 실행중이고 화면이 꺼져있어도 푸시가 오면 화면이 잘 켜지던데 어떻게 한건가요..?
찾아보니 wakeLock 을 이용해서 하면 될것같기도 한데
android 에서 말하기를 api 16부터인가 deplicated 됐다고 사용하지 않을 것을 권장하더라구요
그래서 api level 제약에 안걸리는 방법을 좀 알고싶습니다.. ㅎ
((앱이 실행중이다. 화면은 꺼져있다. 푸시가 왔을 때 화면을 켜주고 싶다.))
아시는 지식좀 나누어주시면 감사하겠습니다..!!