2013-04-28 2 views
28

Android 플랫폼에서 "활동"과 "의도"의 차이점을 누구에게 설명 할 수 있습니까?Android의 활동과 의도의 차이점은 무엇입니까?

+6

킥 스타터 질문입니다. 일단 당신이 그것을 얻으면, 되돌아 보는 것은 없습니다. – Siddharth

+0

왜 1 주일 후 나의 대답이 받아 들여지지 않았는지에 대한 설명이 있습니까? 나는 괜찮을 것이다. 그러나 받아 들여진 대답은 간결하지 않고 구조가 없으며 더 이상 읽을 거리가 없다. 당시에는 어떤 상향 조율도 없었습니다. – Gusdor

답변

36

아주 간단한 언어로 Activity이 사용자 인터페이스이며 사용자 인터페이스로 할 수있는 모든 것입니다.한 사용자 인터페이스에서 이동할 때는 Intent으로 새 사용자 인터페이스를 시작해야합니다. Intent은 첫 번째 사용자 인터페이스의 데이터와 함께 전달되는 이벤트입니다.

인 텐트는 사용자 인터페이스와 백그라운드 서비스간에 사용할 수도 있습니다. 또한 모든 활동 및 백그라운드 서비스에 데이터를 브로드 캐스트하려는 경우 Intent이 전달됩니다.

Intent은 개체로 존재하며 활동은 얼굴과 상호 작용으로 이루어집니다. 희망이 도움이되었습니다.

+0

여기에서 뭔가를 지적하고 싶습니다. 우리가 정말로 간단한 안드로이드 응용 프로그램을 가지고 있다고 상상해보십시오. 즉, 텍스트 상자는이 활동 내에서 hello를 사용하여 다른 프로그램이나 활동이 우리에게 데이터를 보내는 경우 this.getIntent()를 호출 할 수 있습니다. 그래서 저는 활동과 의도가 서로 밀접하게 연결되어 있다고 생각합니다. (얘들 아, 내가 잘못하면 고쳐주세요. 안드로이드에서 프로그래밍을 시작하면 몇 가지 개념으로도 어려움을 겪을 수 있습니다.) –

+0

이 말에 초보자로서 당신의 대답은 제게 많은 도움이되었습니다. 건배! –

+0

언제든지 .. 행복하게 도와주세요. – Siddharth

4

이들은 어떤 방식으로도 상호 교환 될 수없는 다른 클래스입니다. Activity 하위 클래스의 예상되는 용도는 응용 프로그램 창의 내용과 동작을 제어하는 ​​것입니다. 반면 Intent은 새로운 Activity을 실행하고 데이터를 전달하는 데 자주 사용되는 간단한 데이터 교환 구조이지만 다른 용도로도 사용됩니다.

3

Activity 클래스는 사용자가 UI 요소를 배치 할 수있는 (전체 화면 또는 플로팅) 창을 생성하므로 Activities가 사용자와 상호 작용합니다.

의도는 대개 하나의보기 (즉, 한 활동)에서 다른 활동으로 전환하려는 경우에 사용됩니다.

당신은 ActivityOne.class 현재이고 당신이 호출 할 때 :

Intent i = new Intent(this, ActivityTwo.class); 
startActivity(i); 

는 ActivityTwo는 사용자에게 표시됩니다.

16

당신이 인 텐트에 대해 아는 경우, 새로운 활동을 시작하기 위해 그것을 사용하는 경우, 귀하의 혼동을 이해할 수 있습니다. 가장 간단한 경우

, 당신은이 같은 새로운 활동을 시작합니다

Intent intent = new Intent(this, SomeOtherActivity.class); 
startActivity(intent); 

그것은 확실히 외모 당신이 활동을 시작, 당신은 시작 활동이 "의도"처럼. 그러나 당신이 실제로하고있는 것은 메소드 startActivity()을 호출하는 것이며 intent라는 컨테이너를 전달하고 있습니다. 그 컨테이너는 무엇을 해야할지 startActivity()에게 알려줍니다. 당신이 startActivity()를 호출 할 때 새 활동

Intent intent = new Intent(this, SomeOtherActivity.class); 
startActivity(intent); 
intent.putExtra("ANIMAL_TYPE", "unicorn"); 
intent.putExtra("ANIMAL_COLOR", "ruby"); 
startActivity(intent); 

에 데이터를 전달 할 때 당신은 더 명확하게 볼 수

는 지금, 그것은 의도를 살펴보고는 SomeOtherActivity 클래스를 시작할 필요가 있음을 알고있다. 또한, SomeOtherActivity 클래스에서,이 같은 의도에서 그 전달 키/값 쌍에 액세스 할 수 있습니다

Bundle extras = getIntent().getExtras(); 
if(extras !=null) { 
    String animal = extras.getString("ANIMAL_TYPE"); 
    String animalColor = extras.getString("ANIMAL_COLOR"); 
} 
+0

잘 설명되어 있습니다. 안드로이드 개발자를위한 자습서를 작성 했습니까? –

18

기존의 대답은 잘하지만 여기에 몇 가지 링크와 함께 둘의 정말 기본적인 정의입니다.

Activity

사용자 인터페이스를 디스플레이하기위한 애플리케이션 component. 활동 클래스는 모든 사용자 상호 작용이 처리되는 곳입니다 (버튼 누름, 목록 선택). 액티비티는 화면에 표시 할 레이아웃을 지정합니다.

Intent

인 텐트는 시스템 메시지입니다. 다른 응용 프로그램 (또는 사용자 자신의!)에게 이벤트를 알리기 위해 시스템 주위에 broadcast이 될 수도 있고, 시스템이 새 활동을 표시하도록 요청할 수도 있습니다.

+1

'액티비티'를 실행하고 '액티비티 관리자'인 '암'을 사용하여 '의도'를 실행하는 동안 어떤 차이가 있습니까? –

관련 문제