티스토리 뷰

암호 잠금 기능이 노출되야 되는 시점은

1. 앱이 백그라운드로 진입한후 다시 실행되는 경우

2. 화면이 꺼졌다가 켜지는 경우

두가지 경우가 있다.


우선 1. 앱이 백그라운드로 진입한후 다시 실행되는 경우 를 캐치 하는 방법을 알아보자.


activity lifecycle 만으로는 앱이 백그라운드에 진입했는지 알 수 없다


activity 가 백그라운드로 진입할 경우 

onPause()

onStop()

순서로 호출된다.

하지만 다른 activity가 위에 올라갔을 경우에도 똑같은 lifecycle이 적용되기 때문에

onWindowFocusChanged(boolean hasFocus) 메서드를 이용해야된다.


앱이 백그라운드에 진입한 경우

onPause()

onWindowFocusChanged(boolean hasFocus)

onStop()

순서로 호출되고 hasFocus 가 false로 셋팅된다.


이를 이용해서 

hasFocus가 false이고 onStop()까지 진행이 됐을 경우

앱이 백그라운드 상태로 진입했다고 간주하면됨 

- 백버튼 동작 체크가 필요할 수 도 있음


  @Override

    protected void onStart() {

        super.onStart();

  if (isAppWentToBg) {

             // 여기에 필요한 코드를 넣는다

             isAppWentToBg = false;

        }

    }

    

    @Override    

    public void onWindowFocusChanged(boolean hasFocus) {

        isWindowFocused = hasFocus;

        if (hasFocus) {

            isWindowFocused = true;

        }

    }

   

    @Override

    protected void onStop() {

        super.onStop();

       if (!isWindowFocused ) {

            isAppWentToBg = true;

        }

    }



  

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함