Intent.

Slides:



Advertisements
Similar presentations
IT CookBook, Android Studio 를 활용한 안드로이드 프로그래밍 Copyright© 2015 Hanbit Academy, Inc. All rights reserved. 14. 서비스와 브로드캐스트 리시버.
Advertisements

스마트폰 화면에서 안드로이드 마켓을 클릭하여 접속합니다. [그림 1-1] 안드로이드 전용 어플리케이션 설치 방법 1. 굿바이 학교폭력 Mobile App 설치 안드로이드폰 설치 방법 마켓에서 검색 아이콘을 클릭 하여 검색창을 활성화 합니다. 굿바이 학교폭력 어플명을 입력.
2008 년 11 월 20 일 실습.  실험제목 ◦ 데이터베이스 커넥션 풀  목표 ◦ 데이터베이스 커넥션 풀의 사용.
오토베이스 엑셀 리포터. Contents - 엑셀 리포터 설명 - 엑셀 리포터 실행 엑셀 리포터 작성 실습 - 엑셀 리포터 양식 작성 - 엑셀 리포터 데이터 보기.
CHAP 3. 첫번째 애플리케이션 예제 #1: text 문자를 출력 예제 #2: UI를 XML로 표현 – main.xml
앱인벤터 기초과정 (1차시) ㈜헬로앱스 강사: 김영준 목원대학교 겸임교수.
컴퓨터와 인터넷.
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
CHAP 22. 블루투스.
그림으로 쉽게 설명하는 안드로이드 프로그래밍
Local Connection과 InkPresenter 학기, 소프트웨어 설계 및 실험(Ⅰ)
CHAP 19. 구글맵.
Power Java 제3장 이클립스 사용하기.
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
MIDP UI ps lab 김윤경.
MySQL 및 Workbench 설치 데이터 베이스.
Intent.
CHAP 24. nfc와 앱위젯.
Activity 액티비티는 안드로이드 응용 프로그램을 구성하는 4가지 컴포넌트 중 하나로 가장 빈번히 사용되며 사용자를 대면한다는 면에서 실질적으로 가장 중요한 요소 화면 하나에 대응되며 입출력 기능이 없어 내부에 뷰나 뷰 그룹을 가짐 setContentView 메서드.
어셈블리 문법 보강 4월 10일.
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
CHAP 11. 액티비티와 인텐트.
14. 서비스와 브로드캐스트 리시버 제목. 14. 서비스와 브로드캐스트 리시버 제목.
SAP GUI 설치 가이드 프로세스 혁신 TFT.
Visual Basic .NET 처음 사용하기.
Chapter 21 Network Layer: ARP, ICMP (IGMP).
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
KHS JDBC Programming 4 KHS
Intent.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
CHAP 12. 리소스와 보안.
Android studio로 Application 만들기.
자바 5.0 프로그래밍.
CHAP 13. 방명록 만들기 실습.
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
PRM 정보관리 업체 메뉴얼
MVC 모델을 이용한 웹 애플리케이션 작성 웹 애플리케이션 개발 순서를 알아본다 웹 애플리케이션의 실행 순서를 이해한다.
ACL(Access Control List)
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
8장 쿠키와 세션 한빛미디어(주).
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
08장 쿠키와 세션.
[그림 1-1] 안드로이드 전용 어플리케이션 설치 방법
10. 액티비티와 인텐트 제목. 10. 액티비티와 인텐트 제목 액티비티의 개념을 파악한다. 인텐트의 개념과 활용법을 익힌다. 액티비티 생명주기에 대해 알아본다.
2강_첫번째 안드로이드 프로젝트 에뮬레이터(AVD) 만들기 처음 만들어 보는 프로젝트 전체적인 구성 살펴보기
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
Fucntion 요약.
CHAP 21. 전화, SMS, 주소록.
11. 어댑터뷰 제목. 11. 어댑터뷰 제목 리스트뷰와 그리드뷰 활용법을 배운다. 갤러리와 스피너의 사용법을 익힌다.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
알고리즘 알고리즘이란 무엇인가?.
STS 에서 웹 서버 설치 방법.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
7주차: Functions and Arrays
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
JSP Programming with a Workbook
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
MIDP 네트워크 프로그래밍 ps lab 김윤경.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
7 생성자 함수.
6 객체.
JAVA 프로그래밍 16장 JNLP.
20 XMLHttpRequest.
Presentation transcript:

Intent

목차 Intent Intent를 이용해 Activity 띄우기 Activity간 통신 Intent Filter Intent Resolution

Intent 어떠한 액션이 수행되어야 한다는 의향을 선언할 수 있도록 해주는 메시지 전달 메커니즘

do something YourActivity Intent 용도 새 Activity를 명시적으로 시작 새 Activity를 암시적으로 시작 시스템 전역에 메시지를 방송 … do something YourActivity Android Intent(do something) Intent(do something) Intent(result) Intent(result) YourActivity MyActivity

Intent를 이용해 Activity 띄우기 startActivity(myIntent) myIntent 오픈할 클래스를 명시적으로 지정 혹은 수행되어야 하는 대상인 액션을 포함 myIntent에 가장 필적할 액티비티 하나를 찾아 시작시킴 새로 띄운 액티비티가 종료될 때 아무런 메시지를 전달하지 않음 startActivityForResult 새로 띄운 Activity가 종료될 때 메시지 전달

startActivity Android YourActivity MyActivity … do something YourActivity Android startActivity(intent) onCreate(intent) YourActivity MyActivity

startActivityForResult & setResult … do something YourActivity Android Intent(do something) startActivityForResult(intent,reqCode) onCreate(intent) Intent(result) setResult(resultCode, intent) onActivityResult(reqCode, resultCode,intent) MyActivity YourActivity

Intent를 이용해 Activity 시작하기 명시적으로 시작(Explicit intent)

Intent를 이용해 Activity 시작하기 암시적으로 시작(Implicit intent) 안드로이드는 지정된 데이터 타입에 대한 액션 수행에 가 장 적합한 클래스로 그 Intent를 런타임에 해결함 빌려 사용하는 기능이 어떤 애플리케이션의 것인지 미리 정확히 알지 않아도 다른 애플리케이션에 있는 기능을 사 용하는 프로젝트 작성 가능

Activity간의 통신 Intent는 액티비티간에 인수와 리턴 값을 전달하 는 도구로도 사용된다. Bundle 타입의 Extras를 활용하여 이름과 값의 쌍 으로 된 임의 타입의 정보를 원하는 개수만큼 전달 할 수 있다. Intent putExtra(String name, int value) Intent putExtra(String name, String value) Intent putExtra(String name, boolean value) name은 전달하는 인수에 대한 이름이 중복되지 않으면 자유롭게 붙일 수 있다.

Activity간의 통신(2) Extras에 저장된 값들은 아래의 메서드로 꺼낸다. Int getIntExtra(String name, int defaultValue); String getIntExtra(String name); boolean getIntExtra(String name, boolean defaultValue);

통신 예제 – CommActivity.java

통신 예제 - ActEdit.java

activity_commactivity.xml activity_actedit.xml

통신 예제

통신 예제

Action 실행하고자 하는 동작이며 Intent를 통해 어떤 작 업을 수행할 지를 지정한다. 액션 설명 ACTION_CALL 통화를 시작한다. ACTION_EDIT 데이터를 표시하고 편집한다. ACTION_MAIN 메인 엑티비티를 실행한다. 입출력되는 데이터는 없다. ACTION_VIEW 가장 일반적인 액션으로, Intent의 URI에 제공된 데이터가 가장 합리적인 방법으로 보여지도록 요청한다. ACTION_DIAL 인텐트의 URI에 지정된 번호로 전화를 걸 수 있도록 번호를 미리 눌러놓는다.

Data 동작에 필요한 상세 데이터를 제공한다. 단독 액션의 경우 별도의 Data가 필요없으나 대부 분의 액션은 목적어가 필요하며 이 목적어에 해당 하는 정보가 Data이다. ex) ACTION_CALL에 대해서 누구에게 전화를 걸 것인지 를 지정

액션 예제 – CallOther.java

액션 예제 – activity_callother.xml

액션 예제 - 실행결과

Intent Filter Android는 요청을 서비스하기 위해 사용할 애플 리케이션이 어떤 것인지 어떻게 알까? Activity, Service, Broadcast receiver를 특정한 종류의 데 이터에 대한 액션을 수행할 수 있는 존재로 등록하는데 사용 애플리케이션 컴포넌트는 Intent Filter를 통해 다른 컴포넌 트로부터의 액션 요청을 서비스할 수 있음을 Android에 알 림 Manifest파일의 intent-filter 태그를 이용함

Intent Filter 하위 엘리먼트 action - 서비스되는 액션의 이름 android:name 속성 이용 category - 액션이 서비스되는 상황 조건 지정 속성 설명 ALTERNATIVE 이 액션이 데이터 타입의 항목에 대해 수행되는 기본 액션에 대한 대안으로 사용될 수 있어야 함을 지정 ex) 연락처의 기본 액션은 해당 연락처를 보여주는 것, 대안은 편집, 삭제 SELECTED_ALTERNATIVE 가능한 것들의 리스트가 필요할 때 DEFAULT Intent Filter에 의해 정의된 데이터 값에 대한 기본 액션. 명시적 인텐트를 이용해 띄어지는 액티비티 HOME 장치가 시작될 때 맨 처음 표시되는 액티비티 LAUNCHER 선택되어 지정된 어떤 데이터도 없이 액티비티를 런치함

Intent Filter 하위 엘리먼트(2) data – 컴포넌트가 실행할 수 있는 데이터에 대한 명세를 지정할 수 있게 함 속성 설명 android:host 유효한 호스트의 이름을 지정 ex) google.com android:mimeType 컴포넌트가 다룰 수 있는 데이터의 종류를 지정 android:path URI를 위한 유효한 경로 값을 지정한다 android:port 지정된 호스트를 위한 유효한 포트를 지정 android:scheme ex) content, http

Intent Filter 등록 예

Intent Resolution startActivity에 암시적 인텐트를 전달하면 해석 과 정을 거쳐 보통 하나의 Activity가 결정됨 지정된 데이터에 대해 주어진 액션을 수행할 수 있 는 Activity가 여러 개 존재하는 경우, 이들 중 최 적의 Activity를 찾는다.

Intent Resolution 과정(1) 1. 설치된 패키지로부터 사용 가능한 모든 Intent Filter들의 리스트를 구성 2. 확인 중인 Intent와 연관된 액션이나 범주에 맞 지 않는 Intent Filter를 리스트에서 제거 1) action match는 Intent Filter가 지정된 액션을 포함하 고 있거나, 아무런 액션도 지정되지 않은 경우에 이루어 진다. 2) category match의 경우 모든 category에 일치해야함

Intent Resolution 과정(2) 3. Intent에 있는 데이터 URI의 각 부분이 Intent Filter의 data 태그(MIME, scheme, host/권한, path) 와 비교한다. 1) MIME 타입은 *을 이용하여 하위 타입 매치 가능 2) scheme은 URI의 프로토콜 부분 ex) http:, tel: 3) host/권한은 URI에서 scheme과 path사이에 있는 부분 ex) www.google.com 4) path는 host뒤에 오는 부분이다. ex) /ig 4. 암시적으로 Activity를 실행시킬 때, 위의 과정들로 부터 하나 이상의 컴포넌트들이 해석되는 경우에는 해 당하는 모든 컴포넌트들이 사용자에게 제공됨

과제