web-dev-qa-db-ja.com

意図と保留中の意図の正確な違いは何ですか?

可能性のある複製:
保留中の意図とは

intentpending intentについて混乱しています
誰もが正確に両方の違いは何であるかを説明できますか?私はSOで検索しましたが、このリンクを見つけましたが、それが私のニーズを満たしていませんhttps://stackoverflow.com/questions/5633810/what-is-difference-between-an-intent-and-a-pending-intent

ペンディングインテントは後で開始するインテントであることを知っています。通常のインテントは、startActivity(intent)またはStartService(intent)に渡されたときに開始されます。

25
Android

PendingIntent

インテントと、それを使用して実行するターゲットアクションの説明。このクラスのインスタンスは、getActivity(Context、int、Intent、int)、getBroadcast(Context、int、Intent、int)、getService(Context、int、Intent、int)で作成されます。返されたオブジェクトを他のアプリケーションに渡して、後であなたに代わって説明したアクションを実行できるようにすることができます。

PendingIntentを別のアプリケーションに与えることにより、あたかも他のアプリケーションが自分自身であるかのように(同じ権限とIDで)、指定した操作を実行する権利を付与します。そのため、PendingIntentの作成方法には注意が必要です。たとえば、多くの場合、たとえば、提供する基本インテントでは、コンポーネント名が独自のコンポーネントの1つに明示的に設定され、最終的には他のどこにも送信されないようにします。

PendingIntent自体は、システムが保持するトークンへの参照であり、トークンを取得するために使用された元のデータを記述しています。これは、所有アプリケーションのプロセスが強制終了された場合でも、PendingIntent自体は、それを与えられた他のプロセスから引き続き使用できることを意味します。作成アプリケーションが後で同じ種類のPendingIntent(同じ操作、同じIntentアクション、データ、カテゴリ、コンポーネント、および同じフラグ)を再取得する場合、それがまだ有効であれば、同じトークンを表すPendingIntentを受け取り、したがって、cancel()を呼び出して削除します

[〜#〜]意図[〜#〜]

インテントは、実行される操作の抽象的な説明です。 startActivityと一緒に使用してアクティビティを起動し、broadcastIntentを使用して任意のBroadcastReceiverコンポーネントに送信し、startService(Intent)またはbindService(Intent、ServiceConnection、int)を使用してバックグラウンドサービスと通信できます。

インテントは、異なるアプリケーションのコード間で実行時バインディングを実行する機能を提供します。その最も重要な用途は、アクティビティの起動であり、アクティビティ間の接着剤と考えることができます。これは基本的に、実行されるアクションの抽象的な記述を保持するパッシブデータ構造です。インテントの主な情報は次のとおりです。

action-ACTION_VIEW、ACTION_EDIT、ACTION_MAINなど、実行される一般的なアクション。data-Uriとして表される、連絡先データベースの個人レコードなど、操作するデータ。

15
Nikunj Patel