study/android

Activity and Intent

jjikky 2020. 10. 12. 06:20
반응형

application

  • 한 개 이상의 액티비티들로 구성된다.
  • 액티비티들은 application 안에서 느슨하게 묶여있다. (액티비티 1>2, 3>2 등 자유롭게 이동 할 수 있다는 뜻)

 

액티비티 

: application을 구성하는 빌딩 블록

 

 

태스크

: 스택에 있는 액티비티 ,  하나의 태스크는 스택에 있는 액티비티 들로 구성된다

 

액티비티 스택

  • Back 키를 누르면 현재 액티비티를 제거하고 이전 액티비티로 되돌아간다.
  • 사용자가 방문한 액티비티들은 어딘가에 기억

 

인텐트

하나의 액티비티(화면)에서 다른 액티비티(화면)로 전환 하려면 어떻게 해야하는가?  -> 인텐트 사용

다른 액티비티를 시작하려면 액티비티의 실행에 필요한 여러가지 정보들을 인텐트에 실어서 보내주어야 한다.

명시적 인텐트 ( explicit intent )

  • "애플리케이션 A의 컴포넌트 B를 구동시켜라"와 같이 명확하게 지정
  • 실행하고자 하는 액티비티의 이름을 적어준다.
Intent intent = new Intent(this, Next_Activity.class);     // 실행하고자 하는 액티비티의 이름 : Next_Activity.class
startActivitty(intent);

 

 

 

layout1.xml
layout2.xml
Activity1.java
Activity2.java
AndroidManifest.xml
실행화면

 

 

 

액티비티에서 결과 받기

 

 

 

값을 저장하고, 값을 읽는 메소드

 

예제 

: 메인 액티비티에서 버튼을 누르면 서브 액티비티 시작

-> 서브 액티비티에서 문자열을 입력하고 "입력완료" 버튼을 누르면 서브 액티비티는 문자열을 메인 액티비티로 전달한 후에 종료된다.

-> 메인 액티비티에서 이 문자열을 받아서 텍스트뷰를 통해 화면에 표시한다.

 

 

실행 화면

 

 

 

 

암시적 인텐트 ( implict intent )

  • "지도를 보여줄 수 있는 컴포넌트이면 어떤 것이라도 좋다"
  • 어떤 작업을 하기를 원하지만 그 작업을 담당하는 컴포넌트의 이름을 명확히 모르는 경우에 사용

            

암시적 인텐트의 형식

액션의 종류

상수 타겟 컴포넌트 액션
ACTION_VIEW 액티비티 데이터를 사용자에게 표시한다.
ACTION_EDIT 액티비티 사용자가 편집할 수 있는 데이터를 표시한다.
ACTION_MAIN 액티비티 태스크의 초기 액티비티로 설정한다.
ACTION_CALL 액티비티 전화 통화를 시작한다.
ACTION_SYNC 액티비티 모바일 장치의 데이터를 서버 상의 데이터와 일치시킨다.
ACTION_DIAL 액티비티 전화 번호를 누르는 화면을 표시한다.

 

암시적인 인턴트의 예

 

반응형