回答:
意図は、アクションを実行するための「意思」です。言い換えると、
別のアプリコンポーネントからアクションをリクエストするために使用できるメッセージングオブジェクト
インテントは、基本的には、あなたが何かをしたか、何かを起こしたいというメッセージです。インテントによっては、アプリまたはOSがそれをリッスンしていて、それに応じて反応する場合があります。それを、友人Johnに何かをするように言う、またはX(「インテントフィルター」)を実行してXを実行できる友人に送信するブラストメールと考えてください。他の人々はこのメールを無視します。しかし、ジョン(またはXを実行できる友達)はそれに反応します。
ブロードキャストインテント(電話の呼び出し音やSMSの受信など)をリッスンするには、インテントが渡されるブロードキャストレシーバーを実装します。「写真を撮る」など、別のアプリのインテントを処理できることを宣言するには、アプリのマニフェストファイルでインテントフィルターを宣言します。
ダイヤラをポップアップするなど、何かをするためにインテントを発射したい場合は、インテントを発動してその旨を伝えます。
インテントは、基本的に間で渡されるメッセージである構成要素(例えば、アクティビティ、サービス、ブロードキャストレシーバ、およびコンテンツプロバイダ)。したがって、API呼び出しに渡されるパラメーターとほぼ同じです。API呼び出しとインテントを介したコンポーネントの呼び出しの基本的な違いは次のとおりです。
もちろん、インテントは、明示的なインテントと呼ばれるものを使用して、API呼び出しとまったく同じように機能させることができます。これについては、後で説明します。しかし、たいていの場合、暗黙の意図が進むべき道であり、それがここで説明されています。
別のコンポーネントを呼び出したいコンポーネントは、ジョブを実行する意図のみを表明する必要があります。そして、存在し、intent-filtersを介してそのようなジョブを実行できると主張している他のコンポーネントは、Androidプラットフォームによって呼び出され、ジョブを実行します。つまり、どちらのコンポーネントも互いの存在を認識していませんが、エンドユーザーに望ましい結果を提供するために連携して機能することができます。
コンポーネント間のこの目に見えない接続は、インテント、インテントフィルター、およびAndroidプラットフォームの組み合わせによって実現されます。
これにより、次のような大きな可能性が生まれます。
Androidドキュメントのインテントに関する技術的な詳細は次のとおりです。
インテントは、実行される操作の抽象的な説明です。それと共に使用することができるstartActivity起動するbroadcastIntent、アクティビティの利害に送信するBroadcastReceiverのコンポーネント、およびSTARTSERVICE(インテント)又はbindService(インテント、ServiceConnection、INT)は、バックグラウンドサービスと通信します。
インテントは、異なるアプリケーションのコード間で実行時バインディングを実行する機能を提供します。その最も重要な用途は、アクティビティの起動であり、アクティビティ間の接着剤と考えることができます。これは基本的に、実行されるアクションの抽象的な記述を保持するパッシブデータ構造です。インテントの主要な情報は次のとおりです。
- action ACTION_VIEW、ACTION_EDIT、ACTION_MAINなど、実行される一般的なアクション。
- data Uriとして表される、連絡先データベースの個人レコードなど、操作するデータ。
インテントは、何をしたいかをAndroidに伝える方法です。つまり、あなたの意図を説明します。インテントは、特定のイベントが発生したことをAndroidシステムに通知するために使用できます。Androidの他のコンポーネントは、インテントフィルターを介してこのイベントに登録できます。
以下は2種類のインテントです
特定のコンポーネントを呼び出すために使用されます。起動するコンポーネントがわかっていて、どのコンポーネントを使用するかをユーザーに自由に制御させたくない場合。たとえば、2つのアクティビティを持つアプリケーションがあるとします。アクティビティAとアクティビティB。アクティビティAからアクティビティBを起動します。この場合、アクティビティBをターゲットとする明示的なインテントを定義し、それを使用して直接呼び出します。
何をしたいかはわかっているが、どのコンポーネントを起動するかわからない場合に使用します。または、使用するコンポーネントのリストから選択するオプションをユーザーに提供する場合。これらのインテントがAndroidシステムに送信されると、特定のアクションとデータ型に対して登録されているすべてのコンポーネントが検索されます。コンポーネントが1つしか見つからない場合、Androidはコンポーネントを直接起動します。たとえば、カメラを使用して写真を撮るアプリケーションがあるとします。アプリケーションの機能の1つは、ユーザーが撮影した写真を送信できるようにすることです。ユーザーが写真を送信できるアプリケーションの種類がわからない。また、ユーザーに複数の外部アプリケーションがある場合に使用する外部アプリケーションを選択するオプションをユーザーに提供したい。この場合、明示的な意図は使用しません。
明示的なインテントは、何が含まれていても、常にそのターゲットに配信されます。フィルターは参照されません。ただし、暗黙的なインテントは、コンポーネントのフィルターの1つを通過できる場合にのみコンポーネントに配信されます。
インテントがAndroidシステムに送信されると、このインテントに適したアプリケーションが決定されます。このタイプのインテントに対して複数のコンポーネントが登録されている場合、Androidはユーザーにそれらの1つを開く選択肢を提供します。
この決定は、IntentFiltersに基づいています。IntentFiltersは、アクティビティ、サービス、またはブロードキャストレシーバーが応答できるインテントのタイプを指定します。インテントフィルターは、コンポーネントの機能を宣言します。これは、アクティビティまたはサービスが実行できること、およびレシーバーが処理できるブロードキャストのタイプを指定します。これにより、対応するコンポーネントが宣言された型のインテントを受け取ることができます。IntentFiltersは通常、AndroidManifest.xmlファイルを介して定義されます。BroadcastReceiverの場合、コーディングで定義することもできます。IntentFiltersは、そのカテゴリ、アクション、およびデータフィルタによって定義されます。追加のメタデータを含めることもできます。
コンポーネントがインテントフィルターを定義していない場合、明示的なインテントによってのみ呼び出すことができます。
以下は、フィルタを定義するには2通りの方法が
マニフェストでインテントフィルターを定義した場合、そのフィルターで定義されたインテントに反応するためにアプリケーションを実行する必要はありません。Androidは、アプリケーションがインストールされるとフィルターを登録します。
あなたのしたい場合は、放送受信機は、アプリケーションが実行されている唯一の意図を受信します。次に、実行時に(プログラムで)インテントフィルターを定義する必要があります。これは放送受信機でのみ機能することに注意してください。
単一のアクティビティを書き込んだ後、別のアクティビティに移行して、最初のアクティビティからの情報の有無にかかわらず、別のタスクを実行する必要があります。
Androidプラットフォームでは、Intent Interfaceを使用して移行できます。
言葉はここから取られています:Intent Demoを使用して、コードファイルも提供されているため、この例を試してみることをお勧めします。それを使用して、簡単に理解できます。
Androidインテントを使用すると、1つのAndroidアクティビティから別のアクティビティに移動できます。このチュートリアルでは例とともに、さまざまなタイプのAndroidインテントについても説明します。
Androidインテントは、あるアクティビティから別のアクティビティへの通信に使用される単純なメッセージオブジェクトとして定義できます。
インテントは、アプリケーションの意図を定義します。また、アクティビティ間のデータ転送にも使用されます。
Androidインテントを使用して、次の3つのタスクを実行できます。
インテントは、大きく2つのカテゴリに分類できます。このカテゴリのキーワードはなく、Androidインテントの使用方法の大まかな分類のみです。
明示的なAndroidインテント
Explicit Android Intentは、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
彼らのドキュメントによると:
インテントは、個別のコンポーネント(2つのアクティビティなど)間のランタイムバインディングを提供するオブジェクトです。インテントは、アプリの「何かをする意図」を表します。インテントはさまざまなタスクに使用できますが、ほとんどの場合、別のアクティビティを開始するために使用されます。
ここに例のリンクがあります: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
3)。http://www.vogella.de/articles/AndroidIntent/article.html
より多くの記事が利用可能です。
インテントとは何ですか?
これは、コンポーネントに渡される一種のメッセージまたは情報です。アクティビティの起動、Webページの表示、SMSの送信、Eメールの送信などに使用されます。
Androidには2種類のインテントがあります。
暗黙的インテント
明示的インテント
暗黙的インテントは、システムコンポーネントを呼び出すために使用されます
例
Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));
startActivity(i);
明示的なインテントは、アクティビティクラスを呼び出すために使用されます。
例
インテントintent = 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
広義では、意図を次のように定義できます。
あるアクティビティが別のアクティビティを開始したい場合、開始したいアクティビティを指定するIntentというオブジェクトを作成します。
紙のリンクからDeep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013
意図はいくつかの小さいが効果的な行で理解されています
このスレッドから、Androidアーキテクトのダイアンハックボーンの簡単な答えは、data container
それを実際にそうであると述べています。
Androidアーキテクチャの観点から:
インテントは、プロセス間通信に使用されるデータコンテナーです。Binder
Androidアーキテクチャの観点から、上に構築されています。
インテントは、1つのアクティビティから別のアクティビティを開始するために使用されます。基本的には、1つのアクティビティから別のアクティビティにデータを送信したり、トリガーしたりするために使用されます。
彼らは基本的に2つのタイプです
暗黙の意図。
明示的な意図。
初心者として私はこれだけ知っています。これは、Androidインテントに関するいくつかの基本的な考えを与えると思います