Android 为什么主活动有一个意图过滤器? 如果意图过滤器是为了解析隐式意图,那么为什么呢 MainActivity(这是在 应用程序已启动)是否有意向过滤器 谁向它发送了一个隐含的意图 如果发送的隐式意图没有正确的数据怎么办

Android 为什么主活动有一个意图过滤器? 如果意图过滤器是为了解析隐式意图,那么为什么呢 MainActivity(这是在 应用程序已启动)是否有意向过滤器 谁向它发送了一个隐含的意图 如果发送的隐式意图没有正确的数据怎么办,android,android-studio,android-intent,intentfilter,android-implicit-intent,Android,Android Studio,Android Intent,Intentfilter,Android Implicit Intent,那么,系统如何知道哪个活动是主要活动呢?它不是名称-系统不关心名称。该活动带有表示其为主要活动的意图过滤器 它还可以有其他意图过滤器,以任何其他方式启动它。例如,您可能有一个意图过滤器通过深度链接启动它 至于正确的数据-如果从应用程序列表或主屏幕启动,它将不会有任何数据。这取决于应用程序的程序员,以确保它可以在这种情况下做一些有意义的事情 它有类别_启动器和动作_主。 android.intent.action.MAIN表示此活动是应用程序的入口点,即启动应用程序时,将创建此活动。 CATEGO

那么,系统如何知道哪个活动是主要活动呢?它不是名称-系统不关心名称。该活动带有表示其为主要活动的意图过滤器

它还可以有其他意图过滤器,以任何其他方式启动它。例如,您可能有一个意图过滤器通过深度链接启动它

至于正确的数据-如果从应用程序列表或主屏幕启动,它将不会有任何数据。这取决于应用程序的程序员,以确保它可以在这种情况下做一些有意义的事情

  • 它有类别_启动器和动作_主。 android.intent.action.MAIN表示此活动是应用程序的入口点,即启动应用程序时,将创建此活动。 CATEGORY_LAUNCHER告诉您的活动应该显示在顶级启动器中
  • 启动器向其发送隐式意图。这就是launcher如何知道在单击时打开哪个活动

  • 如果您发送不正确的数据,它将不会打开您的活动。例如: 如果您试图仅在startActivity中使用隐式意图启动主活动,则不会启动,因为存在与之关联的默认类别。您需要在活动中再添加一个意图过滤器以解决意图


  • 1) 明白了。2) 明白了,比如说,如果用户点击网站上的地址,我们的地图应用程序就可以使用意向过滤器启动。我的理解正确吗?我可以知道什么是深度链接吗?移动设备的深度链接是指类似url在应用程序而不是网页中打开活动。默认的意图过滤器不会处理深度链接。为此,您需要创建一个单独的意图过滤器。@DamanpreetSingh我没说会。我说这是主要活动可以有过滤器的另一个原因。