Android はIntentオブジェクトを使用してアクティビティ間の通信を行います。1 つのアクティビティは、アクションとデータを指定するインテントを作成し、それをシステムに送信します。次に、システムは、そのインテントに応答するのに最適なアプリケーションを決定し、そのインテントを選択したアプリケーションに転送します。
たとえば、ブラウザの AndroidManifest.xml ファイルを調べると、<intent-filter>
「http」、「https」、「inline」、「text/html」、「 text/plain」など。
一部のアプリケーションは同じインテント フィルターを指定する場合があり、その場合は競合が発生します。たとえば、「http://wikipedia.org/」などのインテント フィルタを登録するウィキペディア アプリケーションは多数あります。
システムで競合が発生すると、「Complete action using」というダイアログがポップアップ表示され、インテント フィルターに一致したアプリケーションのリストが含まれます。この時点で、ユーザーは使用するアクティビティを選択し、必要に応じてシステムにその選択を記憶するように指示します。
ウィキペディアの例では、ユーザーがウィキペディア アプリを選択し、その選択をシステムに記憶させることを選択したとします。それ以降、システムは「 http://wikipedia.org/ 」で始まるインテントに対して常にウィキペディア アプリを起動します。「http:」で始まるインテントについては、ウィキペディア アプリのインテント フィルターと一致しないため、引き続きブラウザーを起動します。
システムがインテント、アプリケーション、およびユーザー設定のリストを実際にどこに保持しているかについては、その部分についてはお答えできません。これはおそらく Android の内部データの一部であり、その正確な場所は公開された API の一部ではなく、予告なしに変更される可能性があります。ユーザー設定をリセットするようにシステムに指示する方法はおそらくあると思いますが、その方法はわかりません。