답변:
의도 작업을 수행 할 수있는 "의도"입니다; 다시 말해,
다른 앱 구성 요소 에서 작업을 요청하는 데 사용할 수있는 메시징 개체
의도는 기본적으로 어떤 일이 있었거나 일어나고 싶다는 메시지입니다. 의도에 따라 앱 또는 OS가이를 수신하고 반응 할 수 있습니다. 친구에게 John에게 무언가를하도록 지시하거나 X ( "의도 필터" )를 수행하여 X를 수행 할 수있는 친구에게 보내는 폭발적인 이메일이라고 생각하십시오 . 다른 사람들은 이메일을 무시합니다. 그러나 John (또는 X를 할 수있는 친구)은 그것에 반응 할 것입니다.
브로드 캐스트 인 텐트 (전화 벨 울림 또는 SMS 수신 등)를 들으려면 인 텐트가 전달되는 브로드 캐스트 리시버 를 구현합니다 . "사진 찍기"와 같이 다른 사람의 앱 의도를 처리 할 수 있음을 선언하려면 앱의 매니페스트 파일에서 의도 필터 를 선언 합니다 .
다이얼러 팝업과 같은 일을하려는 의도를 해고하려는 경우 의도대로 해고하십시오 .
의도는 기본적으로 사이에 전달되는 메시지입니다 구성 요소 (예 : 활동 , 서비스, 방송 수신기, 및 정보 제공자 ). 따라서 API 호출에 전달 된 매개 변수와 거의 같습니다. API 호출과 의도를 통한 컴포넌트 호출의 근본적인 차이점은 다음과 같습니다.
물론, 명시 적 의도 라고하는 것을 사용하여 API 호출과 똑같이 작동하도록 의도를 만들 수 있습니다. 그러나 종종 암시적인 의도 가가는 길이며 여기에 설명되어 있습니다.
다른 구성 요소를 호출하려는 구성 요소 는 작업 수행 의도 만 표현하면됩니다 . 그리고 존재하고 intent-filters를 통해 그러한 작업을 수행 할 수 있다고 주장하는 다른 구성 요소 는 Android 플랫폼에 의해 호출되어 작업을 수행합니다. 즉, 어떤 구성 요소도 서로의 존재를 인식하지 못하지만 최종 사용자에게 원하는 결과를 제공하기 위해 함께 작동 할 수 있습니다.
인 텐트, 인 텐트 필터 및 Android 플랫폼의 조합을 통해 구성 요소 간의 보이지 않는 연결이 이루어집니다.
이것은 다음과 같은 큰 가능성으로 이어집니다.
다음은 Android 문서에서 의도 에 대한 추가 기술 정보 입니다.
의도는 수행 할 작업에 대한 추상적 인 설명입니다. startActivity 와 함께 사용 하여 활동 을 시작하고 broadcastIntent 를 관심있는 BroadcastReceiver 구성 요소 로 보내 거나 startService (Intent) 또는 bindService (Intent, ServiceConnection, int) 를 사용하여 백그라운드 서비스와 통신 할 수 있습니다.
인 텐트는 다른 응용 프로그램의 코드간에 런타임 런타임 바인딩을 수행하기위한 기능을 제공합니다. 가장 중요한 용도는 활동을 시작하는 데 있으며 활동 사이의 아교로 생각할 수 있습니다. 기본적으로 수행 할 작업에 대한 추상적 인 설명이 포함 된 수동 데이터 구조입니다. 의도적 인 기본 정보는 다음과 같습니다.
- action ACTION_VIEW, ACTION_EDIT, ACTION_MAIN 등과 같이 수행 할 일반 작업입니다.
- 데이터 연락처 데이터베이스의 개인 레코드와 같이 작동 할 데이터는 Uri로 표시됩니다.
의도는 안드로이드에게 당신이하고 싶은 것을 말해주는 방법입니다 . 다시 말해, 당신은 당신의 의도를 설명합니다. 인 텐트는 특정 이벤트가 발생했음을 Android 시스템에 알리는 데 사용될 수 있습니다. Android의 다른 구성 요소는 인 텐트 필터를 통해이 이벤트에 등록 할 수 있습니다.
다음은 2 가지 유형의 의도입니다.
특정 구성 요소를 호출하는 데 사용됩니다. 시작할 구성 요소를 알고 있고 사용할 구성 요소를 사용자가 자유롭게 제어하지 않으려는 경우. 예를 들어, 활동이 2 개인 응용 프로그램이 있습니다. 활동 A 및 활동 B. 활동 A에서 활동 B를 시작하려고합니다.이 경우 명시 적 의도 타겟팅 활동 B를 정의한 후이를 사용하여 직접 호출하십시오.
수행하려는 작업에 대한 아이디어가 있지만 어떤 구성 요소를 시작해야하는지 모르는 경우에 사용됩니다. 또는 사용할 구성 요소 목록 중에서 선택할 수있는 옵션을 사용자에게 제공하려는 경우. 이러한 의도가 Android 시스템으로 전송되면 특정 조치 및 데이터 유형에 등록 된 모든 구성 요소를 검색합니다. 컴포넌트가 하나만 발견되면 Android가 컴포넌트를 직접 시작합니다. 예를 들어, 카메라를 사용하여 사진을 찍는 응용 프로그램이 있습니다. 응용 프로그램의 기능 중 하나는 사용자가 자신이 촬영 한 사진을 보낼 수 있다는 것입니다. 사용자가 사진을 보낼 수있는 응용 프로그램의 종류를 모르고, 사용자에게 둘 이상의 응용 프로그램이있는 경우 사용할 외부 응용 프로그램을 선택할 수있는 옵션을 제공하려고합니다. 이 경우 명시 적 의도를 사용하지 않습니다.
포함 의도에 관계없이 명시 적 의도는 항상 대상에 전달됩니다. 필터는 참조되지 않습니다. 그러나 암시 적 의도는 구성 요소의 필터 중 하나를 통과 할 수있는 경우에만 구성 요소에 전달됩니다.
인 텐트가 Android 시스템으로 전송되면이 인 텐트에 적합한 응용 프로그램이 결정됩니다. 이 유형의 의도에 대해 여러 구성 요소가 등록 된 경우 Android는 사용자에게 구성 요소 중 하나를 열 수있는 옵션을 제공합니다.
이 결정은 IntentFilters를 기반으로합니다. IntentFilters는 활동, 서비스 또는 브로드 캐스트 수신자가 응답 할 수있는 Intent 유형을 지정합니다. 인 텐트 필터는 구성 요소의 기능을 선언합니다. 활동 또는 서비스가 수행 할 수있는 작업과 수신자가 처리 할 수있는 브로드 캐스트 유형을 지정합니다. 해당 컴포넌트가 선언 된 유형의 의도를 수신 할 수 있습니다. IntentFilters는 일반적으로 AndroidManifest.xml 파일을 통해 정의됩니다. BroadcastReceiver의 경우 코딩에서이를 정의 할 수도 있습니다. IntentFilters는 카테고리, 조치 및 데이터 필터로 정의됩니다. 추가 메타 데이터를 포함 할 수도 있습니다.
구성 요소가 인 텐트 필터를 정의하지 않으면 명시 적 인 텐트 만 호출 할 수 있습니다.
다음은 필터를 정의하는 두 가지 방법입니다.
매니페스트에서 인 텐트 필터를 정의하면 필터에 정의 된 인 텐트에 반응하기 위해 응용 프로그램을 실행할 필요가 없습니다. Android는 애플리케이션이 설치 될 때 필터를 등록합니다.
당신이 원하는 경우 방송 수신기는 응용 프로그램이 실행되는 경우에만 의도를받을 수 있습니다. 그런 다음 런타임 동안 프로그래밍 방식으로 의도 필터를 정의해야합니다. 이 기능은 브로드 캐스트 리시버에서만 작동합니다.
단일 활동을 작성한 후 첫 번째 활동의 정보가 있거나없는 다른 태스크를 수행하기 위해 다른 활동으로 전환해야합니다.
안드로이드 플랫폼은 인 텐트 인터페이스를 통한 전환을 허용합니다.
여기에서 단어를 가져옵니다 : 인 텐트 데모 사용 및 코드 파일도 제공했기 때문에이 예제를 진행하는 것이 좋습니다. 사용하고 쉽게 이해할 수 있습니다.
Android Intent를 사용하면 한 Android 활동에서 다른 Android 활동으로 이동할 수 있습니다. 이 튜토리얼에서는 예제를 통해 다양한 유형의 Android 인 텐트에 대해서도 설명합니다.
Android Intent는 하나의 활동에서 다른 활동으로 통신하는 데 사용되는 간단한 메시지 오브젝트로 정의 될 수 있습니다.
의도는 응용 프로그램의 의도를 정의합니다. 또한 활동간에 데이터를 전송하는 데 사용됩니다.
Android Intent를 사용하여 다음 3 가지 작업을 수행 할 수 있습니다.
의도는 크게 두 가지 범주로 분류 할 수 있습니다. 이 카테고리에는 키워드가 없으며 Android 인 텐트 사용 방식에 대한 광범위한 분류 만 있습니다.
명시 적 Android 의도
명시 적 Android 의도는 Android 시스템에서 호출해야하는 구성 요소를 명시 적으로 정의하는 의도입니다.
Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);
암시 적 Android 의도
암시 적 Android 의도는 정확한 구성 요소를 정의하는 대신 수행하려는 조치를 정의하는 의도입니다. 이 조치를 처리하기로 한 결정은 운영 체제에 맡겨집니다. OS는 암시 적 의도에 가장 적합한 구성 요소를 결정합니다. 예를 보자.
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
자세한 내용은 아래를 방문하십시오.
http://developer.android.com/reference/android/content/Intent.html
그들의 문서에 따르면 :
의도는 별도의 구성 요소 (예 : 두 활동)간에 런타임 바인딩을 제공하는 객체입니다. 인 텐트는 앱의 "무언가를하려는 의도"를 나타냅니다. 다양한 작업에 인 텐트를 사용할 수 있지만 대부분 다른 활동을 시작하는 데 사용됩니다.
다음은 예제와의 링크입니다. http://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent
문서에서 설명한대로 활동을 시작하려면 (활동이 무엇인지 이해해야 함) 다음과 같은 의도를 사용하십시오.
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
의도는 수행 할 작업에 대한 추상적 인 설명입니다. startActivity와 함께 사용하여 활동을 시작하고 broadcastIntent를 관심있는 BroadcastReceiver 구성 요소로 보내거나 startService (Intent) 또는 bindService (Intent, ServiceConnection, int)를 사용하여 백그라운드 서비스와 통신 할 수 있습니다.
자세한 내용은 다음 링크를 참조하십시오.
1). http://developer.android.com/reference/android/content/Intent.html
2) http://developer.android.com/guide/topics/intents/intents-filters.html
삼). http://www.vogella.de/articles/AndroidIntent/article.html
더 많은 기사가 있습니다.
의도는 무엇입니까?
구성 요소에 전달되는 일종의 메시지 또는 정보입니다. 활동을 시작하고 웹 페이지를 표시하며 SMS를 보내고 이메일을 보내는 등의 작업에 사용됩니다.
안드로이드에는 두 가지 유형의 인 텐트가 있습니다.
암시 적 의도
명시 적 의도
암시 적 의도는 시스템 구성 요소를 호출하는 데 사용됩니다
예
Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));
startActivity(i);
명시 적 의도는 활동 클래스를 호출하는 데 사용됩니다.
예
의도 의도 = newIntent (this, SecondActivity.class);
startActivity(intent);
더 읽을 수 있습니다
http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html
종이 Deep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013
링크에서
의도는 작지만 효과적인 라인에서 이해됩니다
에서 이 스레드 안드로이드 건축가 다이앤 Hackborn의 간단한 대답은로 진술 data container
된 것이 사실이다.
안드로이드 아키텍처 관점에서 :
의도는 프로세스 간 통신에 사용되는 데이터 컨테이너입니다. Binder
안드로이드 아키텍처 관점에서 구축되었습니다 .