[안드로이드스튜디오] 액티비티

2021. 9. 11. 16:38·Programming/Mobile

# 애플리케이션

- 하나 이상인 여러개의 액티비티들로 구성됨

- 액티비티들은 확장자로 가지는 하나의 파일 안에 저장

- 안드로이드 안에는 많은 애플리케이션들이 내장되어 있음

- 이메일, 달력, 문자, 메시지, 주소록, 카메라, 일정 등이 모두 하나의 애플리케이션

- 안드로이드는 홈 화면에 애플리케이션 구동기를 가지고 있음

- 사용자가 아이콘으로 표시된 애플리케이션을 선택하면 애플리케이션 구동기가 애플리케이션을 시작함


# 액티비티

: 사용자가 어떤 작업을 할 수 있는 화면을 가지고 있는 애플리케이션 구성 요소

- 애플리케이션을 구성하는 빌딩 블록

- 각 액티비티는 사용자 인터페이스가 그려지는 윈도우를 가지고 있음

- 애플리케이션을 작성한다는 것은 결국 액티비티를 하나씩 작성한 후에 하나로 조립하는 것이라고 할 수 있음

- 일단 조립되면 액티비티들은 사용자 인터페이스를 형성하며 작업을 함께함

- 안드로이드에서는 실행의 단위가 애플리케이션이 아니고 액티비티

- 하나의 액티비티에서 다른 액티비티를 시작하려면 startActivity()를 호출

- 안드로이드에서는 심지어 다른 애플리케이션의 액티빝도 시작할 수 있음.


# 태스크

: 어떤 작업을 수행하기 위하여 사용자가 상호작용하는 액티비티들의 그룹

- 스택에 있는 액티비티

- 안드로이드는 두 개의 액티비티를 같은 태스크(task)안에서 유지

- 안드로이드는 다른 애플리케이션의 액티비티도 동일한 태스크 안에서 유지시킴으로써 중간에 끊어짐이 없이 매끄러운 사용자 경험을 제공


# 액티비티 스택

- Back 키를 누르면 현재 액티비티를 제거하고 이전 액티비티로 되돌아 감

- 사용자가 방문한 액티비티들은 어딘가에 기억 -> 이런 용도로 사용되는 것이 백스택 또는 액티비티 스택

- 안드로이드는 새로운 액티비티가 시작될 떄마다 액티비티를 스택에 추가

- 현재 액티비티가 다른 액티비티를 시작하면 이 액티비티가 스택의 맨 위에 삽입됨(push)

- 이전 액티비티는 스택에 머물러 있지만 정지된 상태가 됨

- 스택의 맨 위에 있는 액티비티는 현재 실행되고 있는 액티비티

- 이 액티비티가 사용자의 포커스르 가지고 있음

- 사용자가 BACK키를 누르면 현재 액티비티는 스택에서 제거됨(pop) -> 이전 액티비티가 실행 액티비티로 복귀

- 모든 액티비티들이 스택에서 제거되면 태스크는 더 이상 존재하지 않음

 

- 스택에 있는 액티비티들은 절대로 위치가 변경되지 않기 때문에 스택에 동일한 액티비티가 이미 존재하더라도 다시 스택의 윗부분에 추가될 수 있음

 

+ 루트 액티비티

- 애플리케이션이 최근에 실행되지 않아서 애플리케이션을 위한 태스크가 없다면 새로운 태스크가 생성되고 애플리케이션의 메인 액티비티가 스택의 바닥에 추가 됨


 # 액티비티와 태스크 기본 동작 정리

- 액티비티 A가 액티비티B를 시작할 때, 액티비티 A는 실행이 중지

  하지만 액티비티의 상태는 보존

  스크롤 위치나 입력된 텍스트는 유지

  사용자가 액티비티 B에서 BACK버튼을 누르면 액티비티 A가 다시 실행됨

- 사용자가 BACK버튼을 누르면 현재의 액티비티는 스택에서 제거되면서 파괴됨 -> pop으로 삭제

  스택에 있던 이전 액티비티가 다시 시작됨.

  액티비티가 파괴되면 시스템은 액티비티의 상태를 보존하지 않는다. -> 다시 push로 생성해야함

- 액티비티들은 여러 번 객체화될 수 있음

'Programming > Mobile' 카테고리의 다른 글

[안드로이드스튜디오] 서비스와 방송수신자  (0) 2021.10.03
[안드로이드스튜디오] 인텐트  (0) 2021.09.19
[안드로이드스튜디오] 액티비티로부터 결과받기  (0) 2021.09.12
[안드로이드스튜디오] 여러페이지로 구성된 애플리케이션 작성  (0) 2021.09.12
[안드로이드스튜디오] 명시적 인텐트 - 두개의 액티비티로 이루어진 애플리케이션  (0) 2021.09.11
'Programming/Mobile' 카테고리의 다른 글
  • [안드로이드스튜디오] 인텐트
  • [안드로이드스튜디오] 액티비티로부터 결과받기
  • [안드로이드스튜디오] 여러페이지로 구성된 애플리케이션 작성
  • [안드로이드스튜디오] 명시적 인텐트 - 두개의 액티비티로 이루어진 애플리케이션
min_sol
min_sol
  • min_sol
    비글개발연구소🐾
    min_sol
  • 전체
    오늘
    어제
    • 분류 전체보기 (278)
      • Programming (128)
        • Algorithm (52)
        • JAVA (40)
        • GIS (5)
        • PyQt (10)
        • C# (11)
        • Mobile (6)
        • AI (4)
      • Backend (36)
        • Spring (14)
        • JSP (11)
        • Network (5)
      • Frontend (29)
        • React (11)
        • Vue (13)
        • Next.js (4)
      • Database (10)
        • PostgreSQL (1)
        • Oracle (8)
        • Elasticsearch (1)
      • DevOps (8)
        • Linux (7)
        • Mac (1)
      • Tools (0)
        • IntelliJ (1)
        • GitHub (10)
        • RPA (20)
      • Security (9)
      • etc (21)
        • ERROR (5)
        • 세미나 | 교육 (10)
        • 자격증 (1)
        • 일상 (2)
        • 2021 (2)
  • 인기 글

  • 태그

    생능출판
    jsp
    자동화
    명품자바에센셜
    코딩테스트
    백준
    알고리즘
    계산기
    vue.js
    이클립스
    자료구조
    spring
    Java
    스윙
    RPA
    PyQt
    연습문제
    VUE
    자바
    PyQt5
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
min_sol
[안드로이드스튜디오] 액티비티
상단으로

티스토리툴바