[Android] 인텐트(Intent) 의 기본

인텐트(Intent)

한 액티비티에서 다른 액티비티를 실행하려면 액티비티 실행을 요청하는 도구가 필요하다. 안드로이드는 브로드캐스팅과 인텐트(Intent)를 제공하는데, 브로드캐스팅은 모든 객체에게 뿌리는 방송과 같은 것이며 인텐트는 이 방송에 실려 전달되는 메시지에 해당된다.

인텐트는 명시적 인텐트와 묵시적 인텐트가 있다.
실행할 액티비티를 직접적으로 정확하게 가리키는 것을 명시적 인텐트라고 하고,
필요한 기능만 설명한 채 직접적으로 액티비티를 가리키지 않는 것을 암시적 인텐트라고 한다.

명시적 인텐트가 가장 빈번히 사용되는 경우는 하나의 패키지 안의 한 액티비티가 또 다른 액티비티를 호출할 때이다. 이것이 가능한 이유는 너무나도 당연한 일이지만 호출하는 쪽에서 호출할 액티비티를 임포트할 수 있기때문이다.
명시적 인텐트를 사용하는 법은 어렵지 않다. 현재 액티비티의 컨텍스트와 실행할 액티비티 클래스를 인텐트 생성자의 인자로 사용하여 인텐트 인스턴스 하나를 생성한 후에 startActivy() 메서드에 생성한 인텐트를 인자로 넘겨서 호출하면 된다.
... (생략)...
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);
... (생략)...
만일 액티비티의 실행 결과를 받아서 추가적인 일을 수행하려면 startActivity() 메서드 대신
startActivityForResult() 메서드를 사용하면 된다.
... (생략)...
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivityForResult(intent, 0);
... (생략)...
startActivityForResult() 메서드가 실행되고 지정한 액티비티가 실행된 후에 실행된 액티비티가 다시 종료되면 액티비티의 onActionResult() 메서드가 호출될 것이다.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
      // 실행한 액티비티가 종료된 후에 필요한 코드를 이곳에 추가합니다.
}
Intent 클래스 생성자의 첫 번째 인자는 현재 액티비티의 컨텍스트이고 두 번째 인자는 실행할 액티비티의 클래스이다.

암시적 인텐트는 앞에서 설명한 것처럼 실행 주제를 정확하게 서술하지 않고 자신의 목적만으로 적합한 액티비티를 실행하는 것이다.  암시적 인텐트를 사용하기 위해서는 두 가지가 필요하다. 하나는 실행하고자 하는 기능을 나타내는 액션(action)이며, 다른 하나는 액션과 함께 액티비티에 넘겨줄 데이터(data)입니다. 액션은 String 객체로 표현되며 데이터는 Uri 클래스의 인스턴스 이다. 예를 들어 가장 많이 사용되는 전화의 경우 액션으로 Intent.ACTION_CALL을, 데이터로 Uri.parse("tel:01012345678") 과 같은 Uri 값을 사용한다. 이를 코드로 구현하면 아래와 같다.
...(생략)...
/* 전화를 걸기 위한 인텐트를 생성합니다. */
Intent intent = new Intent(Intent.ACTION_CALL);
/* 전화를 Uri 인스턴스로 변환합니다.  */
intent.setData(Uri.parse("tel:01012345678"));
/* 생성된 인텐트를 사용해 액티비티를 실행합니다.  */
startActivity(intent);
...(생략)...
전화를 거는 액티비티를 실행하기 위해 Intent.ACTION_CALL 액션을 사용하고 전화번호를 인자로 넘겨줘야 한다는 사실을 어떻게 알 수 있을까? 암시적 인텐트를 사용하기 위해서는 실행될 대상이 어떤 조건의 인텐트를 받는지 문서상으로 알고 있어야 한다. 안드로이드의 기본 애플리케이션 가운데 전화, 브라우저, 맵 등은 액티비티 공유를 위해 필요한 액션과 데이터를 문서로 공유하고 있다.

구글의 개발자 사이트의 http://developer.android.com/guide/appendix/g-app-intents.html 로 들어가서 Intents List : Invoking Google Applications on Android Devices(인텐트 목록: 안드로이드 기기에서 구글의 애플리케이션 호출하기)를 읽어보면 액션과 필요한 데이터를 확인할 수 있다.



크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2010/11/09 16:42 2010/11/09 16:42
, , ,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5633

인간은 즐거운 상태가 되면,
그 기쁨은 단순히 고단한 일상을 견디게 하는 정도가 아니라,
활기차게 살도록 해주며 행복하다는 느낌을 준다.
이 상태에서 창의적 사고와 지각력, 정보처리 능력이 향상되고 신체 기능도 좋아진다.
이 상태에서 일을 하면
훨씬 더 빠르게 일을 처리할 뿐만 아니라 결과물도 더 우수해진다.
- 서던캘리포니아 대학, 안토니오 다마시오(Antonio Damasio) 신경학과 교수

지나치게 느슨한 분위기나 지나치게 압박이 주어지는 작업환경에서는
높은 성과창출이 불가능합니다.
반대로 적당한 스트레스와 긴장감이 함께하는
즐겁게 일하는 분위기속에서 최상의 결과가 산출됩니다.
상상력, 창의력의 시대, 직원 최우선의 원칙을 다시한번 생각해 봅니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2010/11/09 09:20 2010/11/09 09:20
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5632

부름(Calling)과 화답

그 부름을 듣고
자신의 야망, 가치관, 자산, 열정에 맞게
화답하기만 하면 된다. 간디, 만델라, 테레사 수녀,
마틴 루터 킹과 같은 위인이 될 만한 재목을 갖춘 사람은
우리 가운데 드물다. 그러나 우리 모두는 소박하게나마
인도주의라는 장대한 연속체의 일원이
얼마든지 될 수 있다.


- 빌 스트릭랜드, 빈스 로스의《피츠버그의 빈민가에 핀 꽃》중에서 -


* 누구에게나 하늘의 부름이 있습니다.
사람을 통해서, 일을 통해서 그 부름을 받습니다.
오로지 그에게만 '그 일'을 맡기기 위해 세상에 보낸
이유입니다. 큰 일도 있고, 작고 미세한 일도 있습니다.
큰 일이기 때문에 더 중요하거나 작은 일이므로
덜 중요한 것은 아닙니다. 그 모든 일들이
얼개처럼 연결되어 세상은 더 아름답게,
더 위대하게 진화되고 있습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2010/11/09 09:19 2010/11/09 09:19
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5631


블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2010/11   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
Statistics Graph

Site Stats

Total hits:
245074
Today:
352
Yesterday:
1073