3
  1. インテント フィルターが暗黙的なインテントを解決するためのものである場合、MainActivity (アプリの起動時に実行される最初のアクティビティ) にインテント フィルターがあるのはなぜですか?
  2. 暗黙のインテントを送信するのは誰ですか?
  3. 送信された暗黙のインテントに適切なデータが含まれていない場合はどうなりますか?
4

2 に答える 2

2

では、システムはどのアクティビティがメイン アクティビティであるかをどのように判断するのでしょうか? 名前ではありません。システムは名前を気にしません。メインのアクティビティを示すインテント フィルターを使用したアクティビティです。

また、他のインテント フィルターを使用して、他の方法で起動することもできます。たとえば、ディープ リンク経由で起動するインテント フィルタがあるとします。

適切なデータについては、アプリ リストまたはホーム画面から起動した場合、データはありません。その場合に意味のあることを実行できることを確認するのは、アプリのプログラマーです。

于 2017-01-07T03:58:40.693 に答える
1
  1. CATEGORY_LAUNCHER と ACTION_MAIN があります。android.intent.action.MAIN は、このアクティビティがアプリケーションのエントリ ポイントであることを意味します。つまり、アプリケーションを起動すると、このアクティビティが作成されます。CATEGORY_LAUNCHER は、アクティビティを最上位のランチャーに表示する必要があることを示します。

https://developer.android.com/reference/android/content/Intent.html#ACTION_MAIN

  1. ランチャーは暗黙のインテントをそれに送信します。これは、クリック時にどのアクティビティを開くかをランチャーが認識する方法です。

  2. 不適切なデータを送信すると、アクティビティが開かれません。例: startActivity でのみ暗黙のインテントを使用してメイン アクティビティを開始しようとすると、CATEGORY_DEFAULT が関連付けられているため、開始されません。インテントを解決するには、もう 1 つのインテント フィルターをアクティビティに追加する必要があります。

于 2017-01-07T04:12:15.483 に答える