Intent? Activity Lifecycle?

남궁현·2023년 8월 1일
0

Android

목록 보기
2/15

강의 완강

  • 오늘은 지급된 강의를 끝마쳤다. 얼른 개인과제를 시작하고 싶은 마음에 빨리 끝낸 거 같다. 빨리 들었다고해서 대충 들은 건 아입니다 !

간단한 정리

Context

  • 안드로이드 시스템이 어플리케이션 또는 컴포넌트 등을 관리하기 위해 만들어 놓은 일종의 ID
    현재 내가 사용하고 있는 어플리케이션 환경의 정보에 접근할 수 있는 수단

Intent

  • 인텐트(Intent)는 일종의 메시지 객체입니다.
  • 안드로이드 시스템에서 커뮤니케이션을 담당하는 역할로 컴포넌트 간의 호출과 메시지 전달에

Intent 유형

  • 명시적 인텐트(Explicit Intent)
    시작할 구성요소의 이름을 인텐트 객체에 설정하고 이를 startActivity() 또는 startService()에 넘긴다.
    보통 현재 앱 안에 있는 구성요소(예,액티비티나 서비스)를 시작시킬 때 사용한다.
  • 암시적 인텐트(Implicit Intent)
    시작 할 구성 요소의 이름을 지정하지 않고 일반적인 작업 (예,전화걸기,지도보기등)을 인텐트 객체에 설정하고 이를 startActivity()에 넘긴다.
    안드로이드 시스템은 모든 앱을 검색하여 해당 인텐트와 일치하는 인텐트 필터를 찾고, 일치된 인텐트 필터를 포함한 앱 구성 요소를 시작 시킨다.
  • 다른 액티비티 시작 시키기

버튼 위젯의 onclick 속성에 doOnBtnClick값을 설정한다.

doOnBtnClick()메소드 정의를 해준다.

  • SecondActivity가 ACTION_DIAL 암시적 인텐트를 수신하도록 만들기

본인의 앱이 수신할 수 있는 암시적 인텐트가 뭔지 알리려면 각 앱 구성 요소의 대한 하나 이상의 인텐트 필터를 메니페스트 파일에 선언해야한다.

  • 데이터 전달
    인텐트에 컴포넌트 실행을 요청할 때 데이터를 함께 전달하려면 엑스트라 데이터를 이용한다.
    엑스트라 데이터는 인텐트에 담는 부가 정보라 할 수 있다.
    Extras를 활용하여 이름과 값의 쌍으로된 정보를 전달한다.

먼저 데이터를 입력할 수 있는 EditText와 세번째 액티비티를 호출할 버튼을 추가한다.

버튼이 클릭 되었을 때 다른 액티비티를 시작시키기 위한 명시적 인텐트 객체를 생성한 후 EditText객체에 입력된 문자열을 가져와서 생성한 인텐트 객체의 Extra에 설정한다. 그 후 startActivity()의 파라미터로 인텐트 객체 전달한다.

세번째 액티비티로 넘기는 인텐트 객체 생성 Extra 설정 코드

Intent 객체

  • Intent 객체에는 안드로이드 시스템이 어떤 구성요소를 시작할지 판별하는데 필요한 정보가 담겨 있다.

  • 컴포넌트 이름(Component Name)
    인텐트를 처리하는 타켓 컴포넌트 이름
    선택 항목이므로, 컴포넌트 이름이 지정되지 않으면 암시적인 텐트를 의미함

  • 작업(Action)
    수행되어야 할 작업을 나타내는 문자열

  • 데이터(Data)
    작업에 필요한 데이터

  • 카테고리(Category)
    작업에 대한 추가적인 정보 제공

  • 엑스트라(extra)
    요청한 작업을 수행하기 위해 필요한 추가정보를 담고있는 키- 값 쌍의 데이터

Activity Lifecycle

  • Activity
    안드로이드에서 화면을 관리하고 사용자가 발생시키는 다영한 이벤트를 처리하는 컴포넌트를 말한다.

  • 서비스
    화면에서 보이지 않지만 백그라운드에서 특정 기능을 수행하는 컴포넌트를 말한다.

  • 컨텐트 프로바이더
    앱 간 데이터 공유를 위한 클래스를 제공하는 컴포넌트

  • 브로드 캐스트 리시버
    특정 어플에서 발생하는 특정 브로드캐스트 메세지를 처리하는 컴포넌트

  • Activity Lifecycle
    액티비티가 시작하는 순간부터 종료되는 순간까지의 주기

    onCreate() : 액티비티가 시작될 때 레이아웃을 구성하면서 단 한번만 실행된다.
    
    onStart() : 액티비티가 사용자에게 보이기 직전에 실행. 브로드캐스트 리시버 실행
    
    onResume(): 사용자가 액티비티와 상호작용하는 기능을 넣는 곳으로, 무조건 실행 되어야 하는 기능들이 들어간다.
    
    onPause(): 포커스를 잃어 화면이 부분적으로 보이지만 곧 사라질 때 실행된다.
    
    onStop(): 사용자에게서 화면이 완전히 사라지고, 다른 액티비티가 보여질 떄 호출 된다.
    
    onDestroy(): 화면 회전이나 화면이 완전히 종료되기 직전에 호출된다.
profile
신입 안드로이드 개발자

0개의 댓글