Activity간 호출 및 Intent
기본적인 Activity 호출다른 Activity를 시작하라고~단 나는 잊어버리고~갈 땐 가더라도,어디로 어떻게 갈거구.새로 가는 곳 주인장에게 전해줄 것 좀 챙겨줄께
Intent .. 구조 An intent is an abstract description of an operation to be performed기본 구조는 Action과 Data로 구성• Action: 어떤 opera...
명시적 호출앞서 살펴본 기본 구조 외에 Component라는 것이 있습니다. 이는 명시적으로 선언이 되지 않으면null로 설정이 됩니다. 그리고 이 값을 제외한 값들을 조합해서 Intent가 향해야 할 곳이 결정됩니다....
startActivityForResultA activity B activitystartActivityForResult () + requestCodeonActivityResult(int requestCode, int re...
startActivityForResult 코드 예setResult 함수 통해서 data 전달 시에는 Intent를 담아서 전달
LifeCycle과 onActivityResultA B가. onClick나. onActivityResultA에서 startActivityForResult로 B를 호출 경우A의 LifeCycle과 onActivityRes...
Implicit Intent & Intent Filter직접적으로 수행 대상을 규정하지 않고 처리 가능한 대상을 찾아서 수행하게 하는 것이 implicit intent 입니다. 그런데 이런 방법을 왜 쓸까요?다른 App...
Intent filter 항목+ data에 지정된 URI scheme 및 mimetype 정의 가능
implicit intent 호출 예
Upcoming SlideShare
Loading in …5
×

04 activity간에 호출하기 & intent

2,191 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,191
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

04 activity간에 호출하기 & intent

  1. 1. Activity간 호출 및 Intent
  2. 2. 기본적인 Activity 호출다른 Activity를 시작하라고~단 나는 잊어버리고~갈 땐 가더라도,어디로 어떻게 갈거구.새로 가는 곳 주인장에게 전해줄 것 좀 챙겨줄께
  3. 3. Intent .. 구조 An intent is an abstract description of an operation to be performed기본 구조는 Action과 Data로 구성• Action: 어떤 operation이 이루어지면 좋겠다는 것을 규정• Data: operation이 수행되는데 참고되었으면 하는 데이터에 대한 URI예) ACTION_VIEW | content://contacts/people/11이라는 값으로 규정이 되는 People에 대한 정보를 보여주라는 Intent이렇게 정의되는 기본 Intent에 대해서는 Intent-filter로 상징되는 intent resolution을 통해서 처리가 되어가게 됩니다. 이에 대해서는 추가로 알아가도록 합니다.위 기본 정보 외에 다음 정보들을 포함• Category: 수행되는 Action에 대한 추가 정보. 예) CATEGORY_LAUNCHER• Type: intent data가 가지는 mime 타입 정보. 예) image/jpeg• Extras: 추가적인 정보들의 묶음(bundle).• Flags: 수행될 때, 참조가 될 수 있는 일정 패턴들에 대한 정의값.예) FLAG_ACTIVITY_NO_HISTORY: UI 스택 상에서 사라지게 하기
  4. 4. 명시적 호출앞서 살펴본 기본 구조 외에 Component라는 것이 있습니다. 이는 명시적으로 선언이 되지 않으면null로 설정이 됩니다. 그리고 이 값을 제외한 값들을 조합해서 Intent가 향해야 할 곳이 결정됩니다. 이것이 바로 암묵적 호출 / intent filtering 입니다.그러나 이 값이 명시적으로 지정되면, intent에 있는 다른 값들을 고려하지 않고 지정된component에 의해서 Intent가 수행되게 됩니다. 이것이 명시적 호출이라고 불리는 방법입니다.위와 같이 다른 Activity를 수행을 요청하고 마치는 경우가 있는가 하면,추가적으로 새로이 수행이 되는 Activity에서 처리한 결과를 받고자 하는 경우가 있습니다. 이러한 경우에 다음과 같은 함수를 사용합니다.public void startActivityForResult (Intent intent, int requestCode)intent: 새로이 수행될 operation에 대한 정보 담은 intentrequestCode: 현재 요청하는 요청을 인식할 수 있는 값. 여러 요청 보낼 수 있는 경우 대비
  5. 5. startActivityForResultA activity B activitystartActivityForResult () + requestCodeonActivityResult(int requestCode, int resultCode, Intent intent)setResult & finishExtra단순히 화면으로 전환하고 마치는 것이 아니라,신규 화면이 동작을 마치고 전환 값을 받는 호출활용 예) 사용자 가입을 할 때, 해당 사용자가 Valid한 사용자인지 확인하는 화면B activity가 Crash가 발생될 때에는 resultCode 값이 RESULT_CANCELED 반환 됨.
  6. 6. startActivityForResult 코드 예setResult 함수 통해서 data 전달 시에는 Intent를 담아서 전달
  7. 7. LifeCycle과 onActivityResultA B가. onClick나. onActivityResultA에서 startActivityForResult로 B를 호출 경우A의 LifeCycle과 onActivityResult 순서 사이1. A에서 버튼 onClick에서 B를 startActivityForResult2. A.onPause3. A.onStop4. B에서 동작 마치고 finish 처리5. A.onActivityResult 호출6. A.onResume위와 같은 순서로 A의 생명 주기가 호출됩니다.
  8. 8. Implicit Intent & Intent Filter직접적으로 수행 대상을 규정하지 않고 처리 가능한 대상을 찾아서 수행하게 하는 것이 implicit intent 입니다. 그런데 이런 방법을 왜 쓸까요?다른 App을 활용할 수 있는 여지를 공개지정된 특정 App만 처리할 수 있도록 하는 것이 아니, 처리 가능한 App들이 이를 처리할 수 있도록 공개하는 용도. 예를 들어서 이미지를 보는 App을 선택해서 사용할 수 있도록 해주는 통로Intent를 처리가 가능한 대상을 추출해 내는 과정을 intent resolving 과정이라고 하고, 이를 현재는manifest 파일에 정의된 intent-filter를 통해서 수행하고 있습니다.필터 기준
  9. 9. Intent filter 항목+ data에 지정된 URI scheme 및 mimetype 정의 가능
  10. 10. implicit intent 호출 예

×