안녕하세요.
서버에서 특정 메시지를 받았을경우 팝업을 띄워서 알림을 해주는것을 구현하고 있습니다.
최종적인 목표는 카톡 알림 왔을때처럼, 잠금화면에서도 화면 켜지면서 팝업이 뜨게 하는것인데,
현재 팝업창은 액티비티로 구현을 했습니다. 다이얼로그는 잠금화면에서 단독으로 띄울수가 없다고 하더군요..?
어쨌든.. 팝업창 구현을 했고 메시지 수신시 팝업까진 됬습니다. 잠금화면에선 화면만 켜지고 팝업이 뜨질 않긴하지만..
일단 나타난 문제는, 메시지를 계속 수신시, 액티비티가 게속 뜬다는것 입니다. 메시지를 10번 받으면 10개의 같은 액티비티가
떠 있어서 뒤로가기를 눌러도, startActivity 를 부른 만큼 액티비티가 나오고 있는 상태죠..
그래서 매니패스트에 액티비티 속성을
android:launchMode = "singleInstance"
android:excludeFromRecents="true"
android:taskAffinity=""
을 추가하였습니다. 더이상 액티비티가 중복실행 되지는 않는데 문제는..
팝업알림을 띄우면서, putExtras 로 보낸 데이터에 따라서 팝업 내용이 달라집니다.
경고/해제 두가지로요.
getExtra의 내용이 경고면 경고 이미지와 문구를, 해제면 해재이미지와 문구..
그런데 위에 3줄을 추가하니, 액티비티 내용이 변경되질 않더라구요.
이유는, 위의 3줄의 경우 액티비트를 새로 생성하지 않고, 이미 만들어져 있는 액티비티 라면 그걸 재사용한다고..
그러니 당연히 데이터가 안바뀌는거 같습니다.
이 현상을 해쳐나갈 방법이 있을까요? 구현을 다르게 하더라도..
제 생각 같아서는 이미 액티비티가 존재한다면 그걸 재사용하는것이 아닌, 없애고 새로 만들면 될거 같은데.. 흠..
플래그 중에서 Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK 도 사용해봤는데
해결은 안되더라구용..