devlog of ShinJe Kim

[TIL] 2019-12-16 (월)

|

Today I Learned

  • onCreateOptionsMenu()onPrepareOptionsMenu()의 차이점은?
    • onCreateOptionsMenu(): 한 번만 호출된다.

      안드로이드 공식 문서 - options menu 중

      시스템이 onCreateOptionsMenu()를 호출하고 나면, 개발자가 입력하는 Menu의 인스턴스를 유지하고 무슨 이유로든 메뉴가 무효화되지 않으면 onCreateOptionsMenu()를 호출하지 않습니다. 그러나 onCreateOptionsMenu()는 초기 메뉴 상태를 생성할 때만 사용하고, 액티비티 수명 주기에서 변경할 때는 사용하지 않습니다.

    • onPrepareOptionsMenu(): 메뉴가 열릴 때마다 호출된다.
    • invalidateOptionsMenu(): onPrepareOptionsMenu()를 다시 로드하도록 강제한다.
  • 화면의 상단에 있는 버튼은 업버튼, 안드로이드 기기 자체에(아래에) 있는 버튼은 백버튼이라고 한다.
    • 이 두 버튼은 이전 액티비티 혹은 프래그먼트로 돌아가도록 동작한다.
    • 결과는 같아보이지만 내부적으로 처리되는 것은 다르다.
    • 백버튼을 사용하는 것은 일시적 내비게이션(temporal navigation)이라고 한다. 백버튼을 누르면 직전의 화면으로 이동한다.
    • 업버튼을 사용하는 것은 계층적 내비게이션(hierarchical navigation)이라고 한다. 업버튼을 누르면 앱 계층의 위로 이동한다.

읽을거리

Comments