SlideShare uma empresa Scribd logo
1 de 18
인텐트를 이용하여
서비스에서 UI제어하기
SeongSik Choi
Contents
■ 서비스?
■ 문제점
■ Intent?
- Explicit Intent
- Implicit Intent
■ PendingIntent?
■ Intent Falg
■ 시연
■ Reference
서비스?
서비스?
■ 백그라운드에서 동작하는 컴포넌트(UI를 갖지 않음)
■ 앱이 종료되어도 서비스는 계속 실행(ex: MP3재생, push alarm)
■ 자신의 호스트 프로세스의 기본 스레드에서 실행
문제점
1. 서비스 class에서 MainActivity(UI class)를 직접 제어 불가
2. 푸시가 왔을 때,
앱이 종료되었을 경우 푸시알림이 뜨도록하고,
앱을 실행하고 있을 시엔 MainActivity화면을 갱신하도록 구분
문제점
1. 서비스 class에서 MainActivity(UI class)를 직접 제어 불가
2. 푸시가 왔을 때,
앱이 종료되었을 경우 푸시알림이 뜨도록하고,
앱을 실행하고 있을 시엔 MainActivity화면을 갱신하도록 구분
Intent
■ 일종의 메시지 객체
■ 여러 구성요소들 사이의 통신에 사용
■ 보통 Activity, Service, Broadcast 시작 및 전달 시 사용
■ Explicit(명시적) Intent와 Implicit(암시적) Intent로 구분됨
Intent
■ Explicit(명시적) Intent : 시작할 구성요소를 이름으로 지정
■ Implicit(암시적) Intent : 기기에서 해당 작업을 수행할 수 있는 모든앱 호출가능
문제점
1. 서비스 class에서 MainActivity(UI class)를 직접 제어 불가
2. 푸시가 왔을 때,
앱이 종료되었을 경우 푸시알림이 뜨도록하고,
앱을 실행하고 있을 시엔 MainActivity화면을 갱신하도록 구분
PendingIntent
■ 보류 인텐트
■ Intent객체를 랩핑하여, 원하는 외래 어플리케이션에서 Intent를 자체
Intent처럼 사용하기 위한 용도
■ 알림, 위젯, 알람으로 작업을 수행할때 Intent를 실행하는 용도
PendingIntent
실행중인 프로세스 확인
실행중인 프로세스 확인
■ 앱이 종료되어 있을 경우 푸시가 왔을 때,
■ 앱이 실행 중일 경우 푸시가 왔을 때,
미해결 문제
■ 하나의 앱 내에 여러Activity간에는 구분이 힘듦
Intent Flag
■ Intent.FLAG_ACTIVITY_NEW_TASK
- 서비스에서Activity를 띄우려면Task를 생성해줘야함(Task가Activity를 관리)
■ Intent.FLAG_ACTIVITY_SINGLE_TOP
- 현재 Activity가 다시시작되는 경우 인스턴스를 새로 생성하지 않고, onNewIntent()
를 통해 기존Activity갱신
■ Intent.FLAG_ACTIVITY_CLEAR_TOP
-Task 스택에서 해당 Activity이상의Activity는 종료되고,
해당 Activity는 새로 생성,
시연
Reference
■ 앱 구성요소
http://developer.android.com/intl/ko/guide/components/fundamentals.html#Compon
ents
■ 앱 구성요소 그림
http://arabiannight.tistory.com/entry/안드로이드Android-Service-사용법
■ 서비스
http://developer.android.com/intl/ko/guide/components/services.html
■ Intent, PendingIntent
http://developer.android.com/intl/ko/guide/components/intents-filters.html
■ Intent Flag
http://developer.android.com/intl/ko/guide/components/tasks-and-back-stack.html
ThankYou!!
Q n A?

Mais conteúdo relacionado

Destaque

[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 2. functions
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 2. functions[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 2. functions
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 2. functionsNAVER D2
 
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generatorNAVER D2
 
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitive
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitive[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitive
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitiveNAVER D2
 
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제NAVER D2
 
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제NAVER D2
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제NAVER D2
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이NAVER D2
 
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이NAVER D2
 
오픈소스 맛보기 - 정민우님
오픈소스 맛보기 - 정민우님오픈소스 맛보기 - 정민우님
오픈소스 맛보기 - 정민우님NAVER D2
 
개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님NAVER D2
 
오픈소스 SW 라이선스 - 박은정님
오픈소스 SW 라이선스 - 박은정님오픈소스 SW 라이선스 - 박은정님
오픈소스 SW 라이선스 - 박은정님NAVER D2
 
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님NAVER D2
 
000001560595_1425351208416_0.5687465614331808
000001560595_1425351208416_0.5687465614331808000001560595_1425351208416_0.5687465614331808
000001560595_1425351208416_0.5687465614331808GeniNetworks
 
리눅스를 이용한 Nas만들기
리눅스를 이용한 Nas만들기리눅스를 이용한 Nas만들기
리눅스를 이용한 Nas만들기SeongSik Choi
 

Destaque (20)

[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 2. functions
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 2. functions[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 2. functions
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 2. functions
 
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator
 
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitive
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitive[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitive
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitive
 
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
 
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
 
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
 
오픈소스 맛보기 - 정민우님
오픈소스 맛보기 - 정민우님오픈소스 맛보기 - 정민우님
오픈소스 맛보기 - 정민우님
 
개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님
 
오픈소스 SW 라이선스 - 박은정님
오픈소스 SW 라이선스 - 박은정님오픈소스 SW 라이선스 - 박은정님
오픈소스 SW 라이선스 - 박은정님
 
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
 
GCM demo on Android
GCM demo on AndroidGCM demo on Android
GCM demo on Android
 
000001560595_1425351208416_0.5687465614331808
000001560595_1425351208416_0.5687465614331808000001560595_1425351208416_0.5687465614331808
000001560595_1425351208416_0.5687465614331808
 
Din9talk(beta0.2.0)
Din9talk(beta0.2.0)Din9talk(beta0.2.0)
Din9talk(beta0.2.0)
 
Din9talk(beta0.3.1)
Din9talk(beta0.3.1)Din9talk(beta0.3.1)
Din9talk(beta0.3.1)
 
FCM알아보기
FCM알아보기FCM알아보기
FCM알아보기
 
리눅스를 이용한 Nas만들기
리눅스를 이용한 Nas만들기리눅스를 이용한 Nas만들기
리눅스를 이용한 Nas만들기
 
Linebot
LinebotLinebot
Linebot
 
RokSeoul
RokSeoulRokSeoul
RokSeoul
 

Mais de SeongSik Choi

W8(체중관리 챗봇)
W8(체중관리 챗봇)W8(체중관리 챗봇)
W8(체중관리 챗봇)SeongSik Choi
 
Java Script Template Engine 비교하기
Java Script Template Engine 비교하기Java Script Template Engine 비교하기
Java Script Template Engine 비교하기SeongSik Choi
 
Ubuntu & C9(node.js) with AWS
Ubuntu & C9(node.js) with AWSUbuntu & C9(node.js) with AWS
Ubuntu & C9(node.js) with AWSSeongSik Choi
 
Kakao Bot(Plus friend)
Kakao Bot(Plus friend)Kakao Bot(Plus friend)
Kakao Bot(Plus friend)SeongSik Choi
 
Firebase Database 둘러보기
Firebase Database 둘러보기Firebase Database 둘러보기
Firebase Database 둘러보기SeongSik Choi
 

Mais de SeongSik Choi (7)

W8(체중관리 챗봇)
W8(체중관리 챗봇)W8(체중관리 챗봇)
W8(체중관리 챗봇)
 
Java Script Template Engine 비교하기
Java Script Template Engine 비교하기Java Script Template Engine 비교하기
Java Script Template Engine 비교하기
 
Ubuntu & C9(node.js) with AWS
Ubuntu & C9(node.js) with AWSUbuntu & C9(node.js) with AWS
Ubuntu & C9(node.js) with AWS
 
Kakao Bot(Plus friend)
Kakao Bot(Plus friend)Kakao Bot(Plus friend)
Kakao Bot(Plus friend)
 
AR tool - Vuforia
AR tool - VuforiaAR tool - Vuforia
AR tool - Vuforia
 
Firebase Database 둘러보기
Firebase Database 둘러보기Firebase Database 둘러보기
Firebase Database 둘러보기
 
HTTPS, 원격제어
HTTPS, 원격제어HTTPS, 원격제어
HTTPS, 원격제어
 

Updating android activity UI from a service

Notas do Editor

  1. 브로드캐스트 리시버 : 시스템 전체에 대한 브로드캐스트 공지에 응답하는 구성요소 콘텐츠 제공자 : 통상 콘텐츠 제공자 는 공유된 앱 데이터 집합을 관리합니다. 데이터는 파일 시스템이나 SQLite 데이터베이스, 또는 웹이나 기타 영구적인 저장소 위치 중 앱이 액세스할 수 있는 곳이라면 어디에든 저장할 수 있습니다.
  2. 명시적 인텐트는 일반적으로 본인의 앱 안에서 구성 요소를 시작할 때 씁니다. 암시적 인텐트를 사용하면 본인의 앱은 작업을 수행할 수 없지만 다른 앱은 아마도 할 수 있을 때, 그리고 사용자로 하여금 어느 앱을 사용할지 선택하도록 하고자 할 때 유용합니다. 암시적 인텐트을 수신하려는 경우 인텐트 필터를 매니페스트 파일에 선언하여 수신할 인텐트의 종류를 명시해야함
  3. RunningAppTask는 API 21부터 사장됨