Intentオブジェクトのプロパティに注意してください。

Intentオブジェクトは、基本的にバンドルされた情報のセットです。Intentに関心のあるコンポーネントに関する情報でも、Androidシステムが関心のある情報でもかまいません
。Intentオブジェクトの属性と機能:

コンポーネント名は、インテントオブジェクトを処理するコンポーネントの名前を指定します。
アクションインテントは、完了するアクションです。
カテゴリは
、実行するアクションのタイプを説明するために使用されます。データアクションに操作するデータを提供します。
エクストラインテントコンポーネントに添付ファイル情報を追加します。
フラグAndroidプログラムに開始方法を指示します。アクティビティ

コンポーネント名:

Inetnetオブジェクトのコンポーネント名を設定するために使用されるオプションの属性。その属性値はComponentNameオブジェクトです。ComponentNameを作成するには、パッケージ名とクラス名を指定する必要があります。これにより、コンポーネントクラスを一意に決定できるため、アプリケーションは指定されたコンポーネントクラスは特定のコンポーネントを開始します。
設定されている場合、Intentオブジェクトは指定されたクラスのインスタンスに送信されます。設定されていない場合、AndroidはIntent内の他の情報を使用して、適切なターゲットコンポーネントを検索します。コンポーネント名はsetComponent()で設定できます。 、setClass()またはsetClassName()メソッドを設定し、getComponent()メソッドを介して読み取ります

setComponent()メソッド:

setComponent()メソッドは、構文形式であるIntentのコンポーネントを設定するために使用されます。

public Intent setComponent(ComponentName component)

コンポーネント名
このメソッドを使用するときに設定する
コンポーネント。android.content.ComponentName: ComponentName(コンテキストコンテキスト、CLSクラス<?>)
またはComponentName(String pkg、String cls)の方法で構築されたオブジェクトを作成する必要があります

ContextはContext(context)オブジェクトであり、「current Activity name.this」で指定できます。最初のclsは、開くアクティビティのクラスオブジェクトを指定するために使用され、pkgはパッケージ名を指定するために使用され、2番目のclsは開始を指定するために使用されます。アクティビティ
の完全なクラス名(パッケージ名を含む)

Intent intent = new Intent();
ComponentName componentName = new ComponentName(MainActivity.this,DetailActivity.class);
intent.setComponent(componentName);

または

Intent intent = new Intent();
ComponentName componentName = new ComponentName(“com.mingrisoft”,”com.mingrisoft.DetailActivity”);
intent.setComponent(componentName);

setClass()メソッド:

インテント用に開くアクティビティクラスを設定するために使用されます。構文形式は次のとおりです。

public Intent setClass(Context packageContext,Class<?> cls)

PackageContext Context(context)オブジェクト。「currentActivity name.this」を使用
して、clsによって開かれるアクティビティのクラスオブジェクトを指定できます
例:

Intent intent = new Intent();
			intent.setClass(MainActivity.this,DetailActivity.class);

setClassName()メソッド:

インテント用に開くアクティビティの名前を設定するために使用されます。構文形式は次のとおりです。

public Intent setClassName(Context packageContext,String className)

getComponent()メソッド:

インテント、構文形式に関連するコンポーネントを取得するために使用されます。

public ComponentName getComponent()

戻り値は、Intentに関連するコンポーネントの名前であり、これを使用して、Intentオブジェクトに対応するパッケージ名とクラス名を取得できます。
例:

ComponentName componentName = getIntent().getComponent();
Log.i(“MainActivity”,”包名:” + componentName.getPackageName()” +类名”+componentName.getShortClassName());

アクション:

Action属性は、実行するアクションを指定するために使用されます。これは、インテントの構築方法、特に後で導入されるData(データ)属性とExtras(追加)属性を主に決定します。コンポーネントが処理できるIntentオブジェクトのプロトコル全体を定義する必要があります。単一のAction属性を定義するだけでなく、Intentクラスでは、一連のアクション定数が定義され、ターゲットコンポーネントにはActivityとBroadcastが含まれます。

標準アクティビティアクション(アクティビティの開始に使用される標準アクション):

定数に対応する文字列の説明1ACTION_MAIN android.intent.action.MAINは
最初のアクティビティとして開始され、データの入力と出力はありません
2 ACTION_VIEWandroid.intent.action.VIEWはユーザーにデータを表示します
3ACTION_ATTACH_DATAandroid.intent.action.ATTACH_DATAは示すために使用されます一部のデータは他の場所に添付する必要が
あります
4ACTION_EDITandroid.intent.action.EDIT編集するためにユーザーにデータを表示します5ACTION_PICK android.intent.action.PICKデータからアイテムを選択し、アイテムを返します
6 ACTION_CHOOSERandroid.intent。 action.CHOOSERは、アクティビティセレクターを表示します
。7ACTION_GET_CONTENTandroid.intent.action.GET_CONTENTを使用すると、ユーザーは特定のタイプのデータを選択して返すこと
ができます
。8ACTION_DIALandroid.intent.action.DIAL指定された番号を使用して電話をかけます。9.ACTION_CALLandroid.intent .action.CALLは、提供されたデータを使用して誰かに電話をかけます
10.ACTION_SEND android.intent.action.SEND誰かにメッセージを送信しますが、受信者は指定されていません
11.ACTION_SENDTO android.intent.action.SENDTO誰かにメッセージを送信し、受信します専用
12.ACTION_ANSWERandroid.intent.action.ANSWER呼び出しに応答します
13.ACTION_INSERTandroid.intent.action.INSERT指定されたコンテナーに空白のアイテムを挿入します14.ACTION_DELETEandroid.intent.action.DELETE
コンテナーから指定されたデータを削除します
15.ACTION_RUN android.intent.action.RUN無条件実行データ
16.ACTION_SYNCandroid.intent.action.SYNCデータ同期の実行
17.ACTION_PICK_ACTIVITYandroid.intent.action.PICK_ACTIVITY指定されたインテントのアクティビティを選択し、選択したクラスを
返します18.ACTION_SEARCHandroid。 intent.action.SEARCHクエリの実行
19.ACTION_WEB_SEARCHandroid.intent.action.WEB_SEARCHオンラインクエリの実行
20.ACTION_FACTORY_TESTandroid.intent.action.FACTORY_TEST工場テストのメインエントリポイント

カスタムアクションに加えて、開発者はアクション文字列をカスタマイズして、アプリケーションのコンポーネントを開始することもできます。これらの新しく定義された文字列には、アプリケーションのパッケージ名をプレフィックスとして付ける必要があります。

インテントオブジェクトのアクションは、setAction()メソッドによって設定され、getAction()メソッドによって読み取られます。

setAction()メソッド:

setAction()メソッドは、構文形式であるインテントのアクションを設定するために使用されます。

public Intent setAction(String action)

action設定するアクションの名前

getAction()メソッド:

インテントの取得に使用されるアクションの名前、構文形式:
public String getAction()

データ:

通常、操作対象のデータをアクションに提供するために使用されます。通常、データのURIとMIMEタイプを含むURIオブジェクトにすることができます。アクションが異なれば、データ仕様も異なり、「データタイプ:データ」の形式を使用します。

例:

ウェブサイトにアクセスhttp://ウェブアドレス
電話tel:
テキストメッセージを送信する電話番号smsto:SMS受信番号
検索SDカードファイル
ファイル:/// sdcard /ディレクトリまたはファイル
マップの表示地理:座標、連絡
先情報の調整内容://連絡先個人情報

インテントをデータを処理できるコンポーネントと照合する場合、そのデータタイプ(MIMEタイプ)とURIを明確にすることが重要です。たとえば、画像データを表示できるコンポーネントを呼び出してオーディオファイルを再生しないでください。

ほとんどの場合、データタイプはURI、特にコンテンツから推測できます。URIは、デバイスに配置され、コンテンツプロバイダーによって制御されるデータを表しますが、特定の方法でタイプを明示的に設定することもできます。持ってる:

setData()メソッド:

インテントのURIデータを設定するために使用され、構文形式は次のとおりです。

public Intent setData(Uri data)

設定するデータのデータURI
例:
連絡先情報にID1の連絡先データを設定します。
intent.setData(Uri.parse(content://”com.android.contacts/contacts/1”));

setType()メソッド:

インテントのデータを設定するために使用されるMIMEタイプ、構文形式:

public Intent setType(String type)

type:設定するデータのMIMEタイプ。たとえば、タイプを写真として設定する場合は、image /として指定できます。タイプをビデオとして設定する場合は、video /として指定できます。
例:

intent.setType(“image/*”);

setDataAndType()方法:

インテントのデータとそのMIMEタイプを設定するために使用され、構文形式は次のとおりです。

public Intent setDataAndType(Uri data,String type)

data:設定するデータのURI
タイプ:設定するデータのMIMEタイプ

例:
指定されたデータは、SDCardのpicturesディレクトリにあるimg01.png画像です。

Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory().getPath() + “/pictures/img01.png”));
intent.setDataAndType(uri,”image/*”);

putExtra(String、String)メソッド:

メッセージ送信時のメッセージ内容の設定
String1:送信するメッセージの種類の
設定String2:送信するメッセージ内容の設定

データを読み取るときに一般的に使用される2つの方法:

getData()メソッド:

インテント、構文形式に関連するデータを取得するために使用されます。

public Uri getData()

例:
現在のインテント関連データのURIを取得するには

Uri uri = intent.getData();

getType()メソッド:

インテントに関連するデータを取得するために使用されるMIMEタイプ、構文形式:

public String getType()

例:
現在のインテントオブジェクトのデータタイプを取得するには

String type = intent.getType();

カテゴリー:

**这个属性用来对执行动作的类别进行描述,开发人员可以在一个Intent对象中指定任意数量的Category**

addCategory()メソッド:

	**用来为Intent添加种类信息,语法格式:**

public Intent addCategory(String category)
例:
Categoryをシステムデスクトップとして設定するには:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(“android.intent.category.HOME”);

removeCategory()メソッド:

指定されたタイプの情報をインテントから削除するために使用されます。構文形式は次のとおりです。

public void removeCategory(String category)

例:
システムデスクトップとして設定されたタイプ情報を削除するには:

intent.removeCategory(“android.intent.category.HOME”);

getCategories()メソッド:

インテント、構文形式に関連するすべての種類の情報を取得するために使用されます。

public Set<String> getCategories()
例:
インテントに関連するすべてのタイプの情報を取得するには

Set<String> set = intent.getCategories();

エクストラ(追加情報):

インテントコンポーネントに追加情報を追加するために使用されます。通常は、追加情報を保存するためのキーと値のペアの形式です。

putExtras()メソッド:

インテントの構文形式に追加情報を追加するために使用されます。

public Intent putExtras(Bundle extras)

extras:追加情報を保存するBundleオブジェクト
例:
Bundleオブジェクトを作成し、名前情報を保存し、putExtras()メソッドを使用してIntentオブジェクトに追加します。

Bundle bundle = new Bundle();
bundle.putCharSequence(“name”,”mr”); //保存名称信息
intent.putExtras(bundle);

getExtras()メソッド:

インテント、構文形式で追加情報を取得するために使用されます。

public Bundle getExtras()

utExtras()メソッドとgetExtras()メソッドは通常、複数のアクティビティ間で値を渡すために使用されます

フラグ:

主にAndroidプログラムにアクティビティ
タスクの開始方法を指示するために使用されるのは、スタックモードでまとめられたアクティビティコンポーネントのコレクションです。
デフォルトのシステムには、グラフィカルなタスク管理機能は含まれていません。ユーザーに方法を提供できない限り、FLAG_ACTIVITY_MULTIPLE_TASKロゴを使用しないでください。 -開始したタスクに戻ることができます

setFlags()方法:

インテントのフラグを設定するために使用されます。複数回使用すると、前の構文形式が置き換えられます。

public Intent setFlags(int flags)

例:
履歴スタックに保持されないように新しいアクティビティを設定するには、ユーザーがそれを離れると、アクティビティは自動的に閉じられます。

intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

addFlags()メソッド:

インテントにフラグを追加するために使用されます。複数回使用すると、構文形式で複数のフラグが追加されます。

public Intent addFlags(int flags)

例:
新しいタスクで開始するようにアクティビティを設定するには:

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

getFlags()方法:

インテントフラグ、構文形式を取得するために使用されます。

public int getFlags()

例:
インテントに保存されたロゴを取得し、LogCatパネルに出力するには:

Log.i(“标志”,String.valueOf(intent.getFlags()));

おすすめ

転載: blog.csdn.net/qq_42823109/article/details/96857082