source

Android에서 의도란?

nicesource 2023. 9. 11. 21:52
반응형

Android에서 의도란?

  • Android에서 의도란?
  • 누가 예를 들어 설명해 줄 수 있습니까?
  • 인텐트의 종류는 무엇이며, 우리가 왜 이를 사용하고 있습니까?
  • 안드로이드에서 인텐트가 중요한 이유는 무엇입니까?

의도란 행위를 수행하기 위한 "의도"입니다. 즉,

다른 앱 구성 요소에서 작업을 요청할 때 사용할 수 있는 메시징 개체

의도란 기본적으로 자신이 했거나 어떤 일이 일어나기를 원한다는 메시지입니다.의도에 따라 앱이나 OS가 이를 듣고 있고 그에 따라 반응할 수 있습니다.친구 John에게 무언가를 하라고 하거나 X("의도 필터")를 할 수 있는 친구들에게 X를 할 수 있는 멋진 이메일을 보내는 것이라고 생각해 보세요.다른 사람들은 이메일을 무시하겠지만, 존(또는 X를 할 수 있는 친구)은 이메일에 반응할 것입니다.

방송 의도(예: 전화 벨소리 또는 SMS 수신)를 듣기 위해 방송 수신기를 구현하면 의도가 전달됩니다."사진 찍기"와 같은 다른 사람의 앱 의도를 처리할 수 있다고 선언하려면 앱의 매니페스트 파일에 의도 필터를 선언해야 합니다.

다이얼을 켜는 것과 같이 무언가를 하려는 의도를 발사하고 싶다면, 당신은 당신이 발사할 것이라고 말하는 의도를 발사합니다.

의도란 무엇입니까?

의도는 기본적으로 구성 요소(활동, 서비스, 브로드캐스트 수신기 및 컨텐츠 공급자 등) 에 전달되는 메시지입니다.따라서 API 호출에 전달되는 파라미터와 거의 맞먹습니다.API 호출과 의도를 통한 구성 요소 호출의 근본적인 차이점은 다음과 같습니다.

  • API 호출은 동기식인 반면 의도 기반 호출은 비동기식입니다.
  • API 호출은 컴파일 타임 바인딩인 반면 인텐트 기반 호출은 런타임 바인딩입니다.

물론 인텐트는 후술할 명시적 인텐트라는 을 이용하여 API 호출과 똑같이 작동하도록 만들 수 있습니다.하지만 종종, 암묵적의도는 가야 할 길이며, 이것이 여기서 설명되는 것입니다.

다른 구성 요소를 호출하려는 한 구성 요소는 작업을 수행하려는 의도만 표시하면 됩니다.Android 플랫폼은 인텐트 필터를 통해 그러한 작업을 수행할 수 있다고 주장하는 다른 구성 요소를 호출하여 작업을 수행합니다.즉, 두 구성 요소 모두 서로의 존재를 인식하지 못하고 있지만 여전히 협력하여 최종 사용자에게 원하는 결과를 제공할 수 있습니다.

이렇게 구성 요소 간의 보이지 않는 연결은 의도, 의도 필터 및 Android 플랫폼의 결합을 통해 이루어집니다.

이로 인해 다음과 같은 엄청난 가능성이 발생합니다.

  • 런타임에 구성 요소를 혼합하여 일치시키거나 플러그 앤 플레이할 수 있습니다.
  • 내장된 Android 애플리케이션을 맞춤형 개발 애플리케이션으로 대체합니다.
  • 애플리케이션 내 및 애플리케이션 간에 구성 요소 수준 재사용.
  • 가장 세분화된 수준의 서비스 방향을 말씀드리겠습니다.

다음은 Android 설명서의 Intents에 대한 추가 기술 정보입니다.

의도는 수행할 작업에 대한 추상적인 설명입니다.startActivity와 함께 사용하여 Activity, 브로드캐스트를 시작할 수 있습니다.관심 있는 브로드캐스트 수신기 구성 요소로 전송하고 백그라운드 서비스와 통신할 수 있도록 서비스(Intent)를 시작하거나 서비스를 바인딩(Intent, ServiceConnection, int)합니다.

의도는 다른 응용 프로그램에서 코드 간에 지연 런타임 바인딩을 수행하는 기능을 제공합니다.그것의 가장 중요한 용도는 활동을 시작하는 것인데, 활동 사이의 접착제로 생각할 수 있습니다.기본적으로 수행할 작업에 대한 추상적인 설명을 담고 있는 수동적인 데이터 구조입니다.의도된 주요 정보는 다음과 같습니다.

  • action ACTION_VIEW, ACTION_EDIT, ACTION_MAIN 등 수행할 일반 액션입니다.
  • data 연락처 데이터베이스의 사용자 기록과 같이 URI로 표현되는 작업할 데이터입니다.

더 배우기

인텐트는 안드로이드에게 당신이 하고 싶은 것을 말해주는 방법입니다.다시 말해, 당신은 당신의 의도를 묘사합니다.의도는 안드로이드 시스템에 특정 이벤트가 발생했음을 알리는 데 사용될 수 있습니다.Android의 다른 구성 요소는 의도 필터를 통해 이 이벤트에 등록할 수 있습니다.

다음은 2가지의 의도입니다.

1. 명시적 의도

특정 구성 요소를 호출하는 데 사용됩니다.실행할 구성 요소를 알고 사용할 구성 요소에 대한 사용자의 자유로운 제어 권한을 부여하지 않을 때.예를 들어, 두 가지 활동이 있는 응용 프로그램이 있습니다.활동 A와 활동 B.당신은 A 활동에서 B 활동을 시작하길 원합니다.이 경우 활동 B를 대상으로 명시적 의도를 정의한 다음 이를 사용하여 직접 호출합니다.

2. 암시적 의도

원하는 작업에 대한 아이디어는 있지만 어떤 구성 요소를 실행해야 하는지 모를 때 사용됩니다.또는 사용할 구성요소 목록 중에서 선택할 수 있는 옵션을 사용자에게 제공하려는 경우.이 인텐트를 Android 시스템으로 전송하면 특정 작업 및 데이터 유형에 대해 등록된 모든 구성 요소를 검색합니다.한 개의 구성 요소만 발견되면 안드로이드가 구성 요소를 직접 시작합니다.예를 들어, 카메라를 사용하여 사진을 찍는 애플리케이션이 있습니다.응용 프로그램의 특징 중 하나는 사용자가 찍은 사진을 보낼 수 있는 기회를 제공한다는 것입니다.사용자가 사진을 보낼 수 있는 응용프로그램의 종류를 알 수 없으며, 사용자에게 둘 이상의 외부 응용프로그램을 사용할 경우 사용할 외부 응용프로그램을 선택할 수 있는 옵션을 제공하려고 합니다.이 경우에는 명시적인 의도를 사용하지 않습니다.대신 액션이 ACTION_SEND로 설정되고 데이터가 추가로 사진의 URI로 설정된 암시적 의도를 사용해야 합니다.

명시적 의도는 필터에 무엇이 포함되든 간에 항상 대상으로 전달됩니다. 필터는 필터와 상의되지 않습니다.그러나 암묵적 의도는 구성 요소의 필터 중 하나를 통과할 수 있는 경우에만 구성 요소에 전달됩니다.

의도 필터

Android 시스템으로 Intents가 전송되면 이 Intents에 적합한 응용 프로그램을 결정합니다.이 유형의 Intents에 대해 여러 구성 요소가 등록되어 있는 경우 Android는 사용자에게 해당 구성 요소 중 하나를 열 수 있는 선택권을 제공합니다.

이 결정은 IntentFilters를 기준으로 합니다.의도 필터는 활동, 서비스 또는 브로드캐스트 수신기가 응답할 수 있는 의도 유형을 지정합니다.의도 필터는 구성 요소의 기능을 선언합니다.활동이나 서비스가 수행할 수 있는 작업과 수신자가 처리할 수 있는 브로드캐스트 유형을 지정합니다.이를 통해 해당 구성요소는 선언된 형식의 Intents를 수신할 수 있습니다.IntentFilters는 일반적으로 AndroidManifest.xml 파일을 통해 정의됩니다.BroadcastReceiver의 경우 코딩으로 정의할 수도 있습니다.Intent Filters는 범주, 작업 및 데이터 필터에 의해 정의됩니다.추가 메타데이터를 포함할 수도 있습니다.

구성 요소가 의도 필터를 정의하지 않는 경우 명시적 의도로만 해당 필터를 호출할 수 있습니다.

필터정의하는 두 가지 방법은 다음과 같습니다.

1. 매니페스트 파일

매니페스트에 의도 필터를 정의하는 경우, 응용프로그램이 필터에 정의된 의도에 반응하기 위해 실행되고 있지 않아도 됩니다.안드로이드는 응용 프로그램이 설치되면 필터를 등록합니다.

2. 방송수신기

응용프로그램이 실행 중일 때만 브로드캐스트 수신기가 인텐트를 수신하도록 하려면 다음과 같이 하십시오.그런 다음 실행 시간 동안 인텐트 필터를 (프로그램적으로) 정의해야 합니다.이 기능은 브로드캐스트 수신기에만 적용됩니다.

단일 활동을 작성한 후에는 첫 번째 활동의 정보가 있든 없든 다른 작업을 수행하기 위해 다른 활동으로 전환해야 합니다.

Android 플랫폼은 Intent Interface를 통해 전환이 가능합니다.

단어는 여기서 가져온 것입니다. 의도 데모를 사용하고 코드 파일도 제공하므로 이 예제를 수행하는 것이 좋습니다.사용할 수 있고 쉽게 이해할 수 있습니다.

안드로이드 인텐트

Android Intent를 사용하면 한 안드로이드 활동에서 다른 활동으로 이동할 수 있습니다.예를 들어, 이 튜토리얼은 다양한 유형의 안드로이드 의도에 대해서도 이야기합니다.

Android Intent는 한 활동에서 다른 활동으로 통신하는 데 사용되는 단순한 메시지 개체로 정의할 수 있습니다.

인텐트는 응용프로그램의 의도를 정의합니다.또한 활동 간에 데이터를 전송하는 데도 사용됩니다.

Android Intent는 다음 세 가지 작업을 수행하는 데 사용할 수 있습니다.

  1. 현재 활동에서 다른 활동 또는 서비스 열기
  2. 활동과 서비스 간에 데이터 전달
  3. 책임을 다른 응용프로그램에 위임합니다.예를 들어 의도를 사용하여 브라우저 응용프로그램을 열어 URL을 표시할 수 있습니다.

의도는 크게 두 가지로 분류할 수 있습니다.이 범주에 대한 키워드는 없으며 안드로이드 인텐트가 어떻게 사용되는지에 대한 광범위한 분류만 있습니다.

명시적 안드로이드 인텐트

명시적 Android Intent는 Android 시스템에서 호출해야 하는 구성 요소를 명시적으로 정의하는 Intent입니다.

 Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);

암시적 안드로이드 인텐트

암시적 Android Intents는 정확한 구성 요소를 정의하는 대신 수행할 작업을 정의하는 의도입니다.이 작업을 처리하는 결정은 운영 체제에 맡깁니다.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와 함께 사용하여 Activity, 브로드캐스트를 시작할 수 있습니다.관심 있는 브로드캐스트 수신기 구성 요소로 전송하고 백그라운드 서비스와 통신할 수 있도록 서비스(Intent)를 시작하거나 서비스를 바인딩(Intent, ServiceConnection, int)합니다.

자세한 내용은 다음 링크를 참조하십시오.

1). http://developer.android.com/reference/android/content/Intent.html

2) http://developer.android.com/guide/topics/intents/intents-filters.html

3). 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);

활동 클래스를 호출하는 데 명시적인 의도가 사용됩니다.

Intent intent = newIntent (이, SecondActivity.class);

startActivity(intent);

당신은 더 많이 읽을 수 있습니다.

http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html

An Intent is a class,that is bind the information for doing some actions.

example:passing data one activity to another actvity when user perform such actions in

present activity.

In a broad view, we can define Intent as

When one Activity wants to start another activity it creates an Object called Intent that specifies which Activity it wants to start.

신문에서Deep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013 연결고리

The intent is understood in some small but effective lines

  1. Android supports a simple form of IPC(inter process communication) via intents
  2. Intent messaging is a framework for asynchronous communication among Android components (activity, service, content providers, broadcast receiver )
  3. Those components may run in the same or across different apps (i.e. processes)
  4. Enables both point-to-point as well as publish subscribe messaging domains
  5. The intent itself represents a message containing the description of the operation to be performed as well as data to be passed to the recipient(s).

이 스레드에서 안드로이드 건축가 Dianne Hackborn의 간단한 답변은 다음과 같이 말합니다.data container사실은 그렇지요

From android architecture point of view :

의도는 프로세스 간 통신에 사용되는 데이터 컨테이너입니다.그것은 위에 지어졌습니다.Binder안드로이드 아키텍처의 관점에서.

An Android application can contain zero or more activities. When your application has more than one activity, you often need to navigate from one to another. In Android, you navigate between activities through what is known as an intent. You can pass some data to the activity which you want to start through intent, by using putExtra().

Intents are used to initiate another activity from one activity.It is basically used for several purposes such as sending data to another activity from one activity,and for triggering purposes.

They are basically of two types

  1. Implicit intents.

  2. Explicit intents.

As a beginner I know this much,I think this will give some basic idea about android intents

An intent is basically a way of passing data from one activity to other activity

언급URL : https://stackoverflow.com/questions/6578051/what-is-an-intent-in-android

반응형