- インテント フィルターが暗黙的なインテントを解決するためのものである場合、MainActivity (アプリの起動時に実行される最初のアクティビティ) にインテント フィルターがあるのはなぜですか?
- 暗黙のインテントを送信するのは誰ですか?
- 送信された暗黙のインテントに適切なデータが含まれていない場合はどうなりますか?
2 に答える
では、システムはどのアクティビティがメイン アクティビティであるかをどのように判断するのでしょうか? 名前ではありません。システムは名前を気にしません。メインのアクティビティを示すインテント フィルターを使用したアクティビティです。
また、他のインテント フィルターを使用して、他の方法で起動することもできます。たとえば、ディープ リンク経由で起動するインテント フィルタがあるとします。
適切なデータについては、アプリ リストまたはホーム画面から起動した場合、データはありません。その場合に意味のあることを実行できることを確認するのは、アプリのプログラマーです。
- CATEGORY_LAUNCHER と ACTION_MAIN があります。android.intent.action.MAIN は、このアクティビティがアプリケーションのエントリ ポイントであることを意味します。つまり、アプリケーションを起動すると、このアクティビティが作成されます。CATEGORY_LAUNCHER は、アクティビティを最上位のランチャーに表示する必要があることを示します。
https://developer.android.com/reference/android/content/Intent.html#ACTION_MAIN
ランチャーは暗黙のインテントをそれに送信します。これは、クリック時にどのアクティビティを開くかをランチャーが認識する方法です。
不適切なデータを送信すると、アクティビティが開かれません。例: startActivity でのみ暗黙のインテントを使用してメイン アクティビティを開始しようとすると、CATEGORY_DEFAULT が関連付けられているため、開始されません。インテントを解決するには、もう 1 つのインテント フィルターをアクティビティに追加する必要があります。