Intents Framework
인텐트라 불리는 메시징 객체를 사용해 상호 통신을 쉽게 만들어준다.
앱은 인텐트를 사용해 특정 액션이 일어나게 요청을 할 수 있다.
각 인텐트는 기본 자료형 튜플인 Extra로 패키징되어, 어느 컴포넌트에 전달할 지에 관한 정보를 포함하고 있다.
애플리케이션 컴포넌트는 인텐트를 수신하고 열어서 이 데이터를 읽는다.
어디에 요청을 보내야 할 지 모르거나 어디에 요청을 보내던 상관없는 경우에 사용한다.
두개 이상의 앱이 있다면 안드로이드는 사용자가 특정 요청에 대해 어떤 앱을 사용할지 선택하게 하고
앞으로도 해당 요청에 대해 계속 선택한 앱을 사용할지 물어본다.
전화, 지도, 공유 등이 암시적 인텐트이다.
Creating Implicit Intents
대부분의 암시적 인텐트는 액션과 데이터를 포함하고 있다.
액션은 어떤 작업을 하려는지를 나타내고, 데이터는 그 액션에 넘겨주고자 하는 내용이다.
인텐트는 모든 데이터를 URI로 받는데, 이는 액션에 넘겨주고자 하는 데이터를 가리키는 주소이다.
Understanding URIs
URI (Uniform Resource Identifier, 통합 자원 식별자)는 자원을 식별하는 일련의 문자이다.
URL (Uniform Resource Locator)는 웹 또는 네트워크의 자원을 식별하는 URI이다.
URI의 전체 형식은 아래와 같다.
scheme : [// [user:password @] host [:port] ] [/] path [?query] [#fragment]
[ ]는 옵션이다.
scheme
scheme은 어떤 타입의 자원을 가리키는지 나타낸다.
웹에서 유명한 scheme은 HTTP, HTTPS, mailto, FTP, file, geo 등이 있다.
scheme에 따라 이 뒤에는 슬래시(/) 2개와 authority 부분이 따라 올 수도 있다.
authority
authority는 로그인을 하기 위해 유저 이름과 아이디를 넣는 옵션과,
도메인 네임 또는 IP 주소가 될 수 있는 호스트 네임, 그리고 옵션인 포트가 있다.
따로 명시되지 않는 이상 브라우저는 HTTP 요청에 대해 80번 포트를 가정한다.
path
authority 부분 다음에는 자원에 대한 path(경로)가 나온다.
만약 authority 부분이 있다면 authority와 path 사이에는 반드시 ‘/’가 있어야 한다.
http://qlyh8.tistory.com/category/Android 를 예로 들었을 때
qlyh8.tistory.com 을 호스트로 갖고있는 authority 부분이 있고, category/Android인 path 부분이 있다.
mailto는 authority 부분이 필요하지 않은 scheme이고 path만 있어도 작동한다.
이 경우에 path는 이메일을 보내고자 하는 대상이다.
query
query는 물음표로 시작한다는 것 외에 필수적인 규약이 없다.
key-value 쌍으로 데이터를 표시하는 것이 일반적이긴 하지만 꼭 그래야하는 것은 아니다.
geo:0,0?q=Montreal,Canada의 query는 Montreal,Canada이다.
fragment
자원 경로의 부차적인 위치를 가리키는 fragment는 ‘#’(hash)로 시작한다.
경로와 브라우저는 실행되는 애플리케이션에 따라 다르다.
Android Course of Udacity - Lesson 4
'Android' 카테고리의 다른 글
Intent - (3) Implicit Intent를 코드에 적용하기 (0) | 2018.01.01 |
---|---|
Intent - (2) Explicit Intent를 코드에 적용하기 (0) | 2018.01.01 |
RecyclerView - (3) 코드에 적용하기 (0) | 2017.12.31 |
RecyclerView - (2) Adapter & Layout Manager (0) | 2017.12.30 |
RecyclerView - (1) RecyclerView (0) | 2017.12.30 |