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

잠금화면(락스크린) 관련

0 추천
현재 잠금 화면 락스크린 개발을 하고 있고

 

구성은 주가 되는 액티비티가 있고 서비스에서 불려지는 잠금 액티비티가 존재합니다.

 

잠금 화면을 불러오는 방법으로는 서비스에서 화면이 꺼졌을 경우 액티비티를 불러오는 방법을 쓰고 있습니다.

 

구현은 잘 되는데 원래 본체가 되는 액티비티를 종료하지 않고 홈버튼을 통해 화면을 나간 후 잠금화면에 진입해 락을 풀면

 

그 본체가 되는 액티비티가 불러지게 되더라고요. 정확히 말하면 잠금액티비티 밑에 주 메인 액티비티가 떠 있어요.

 

혹시 이 본체가 되는 액티비티를 불러오지 않게 하는 방법(flag?)이 있을까요?

 

ㅠㅠ 경험있으신 분 좀 알려주세요.
chemkaaa (6,030 포인트) 님이 2013년 5월 13일 질문

3개의 답변

0 추천
홈버튼 자체 제어는 안되고..홈버튼이 눌렸을 때도 잠금 액티비티를 띄우는 식으로 하셔야 할듯 합니다..아니면 AlarmManager로 서비스 무한 동작 시키던지..그런데 이것도 높은 버전API는 막아논듯합니다..
노예의집 (23,370 포인트) 님이 2013년 5월 13일 답변
답변 감사합니다. 질문을 좀 두서없이 쓰다보니...질문 의도 파악이 힘들었네요.
잠금 액티비티는 항상 잘 뜨는데 문제는 설정하는 액티비티를 띄운 후에 종료하지 않고 홈버튼이나 멀티테스킹 버튼을 통해 밖으로 나간 후 화면을 껐다가 키면 잠금 액티비티 밑에 설정액티비티가 같이 떠 있습니다. 왜 이럴까요(의도한 시나리오는 잠금 액티비티만 떠 있어야 해요.) ㅠㅠ
0 추천

맞는 답변일지는 모르겠습니다만 

플래그 중에 

Intent.FLAG_ACTIVITY_NO_HISTORY

플래그를 사용해보셨나요? 위 플래그는 해당 액티비티가 히스토리 스택에 남지 않도록 하여

액티비티가 다른 액티비티에 가려지게 됬을 때 자동으로 제거되는 플래그입니다.

본체가 되는 액티비티에 위 플래그를 추가하고 작업해보시면 어떨까요.

그것도 아니라면 본체가 되는 액티비티 onPause()를 오버라이드해서

액티비티가 퓨즈됬을 떄 this.finish()하시면 될거 같습니다.

andispace (830 포인트) 님이 2013년 5월 14일 답변
감사합니다. 많은 도움 되었습니다.
0 추천
답변에 많은 도움이 되었습니다.

필요하신 분이 있을 것 같아 자답하겠습니다.

플래그 값을 조정해 보니
 

Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP
 

이정도 값을 넣어주면 같이 호출 되지 않더라구요. 완벽하진 않지만 필요하신분 참고 하세요.
chemkaaa (6,030 포인트) 님이 2013년 5월 14일 답변
...