美文网首页Android拾萃
android.intent.category.DEFAULT的

android.intent.category.DEFAULT的

作者: 雨无尽时 | 来源:发表于2018-12-16 20:59 被阅读3次

    两个概念

    • explicit(明确,显式) intent

        Intent intent= new Intent(MainActivity.this, Secondary.class); 
      
      
    • implicit(隐藏,隐式) intent

      Implicit Intent没有明确的指定要启动哪个Activity ,而是通过设置一些Intent Filter来让系统去筛选合适的Acitivity去启动。

      在官方文档中有这么一段话:

    Android treats all implicit intents passed to startActivity() as if they contained at least one category: “android.intent.category.DEFAULT” (the CATEGORY_DEFAULT constant). Therefore, activities that are willing to receive implicit intents must include “android.intent.category.DEFAULT” in their intent filters

    意思是说,每一个通过 startActivity() 方法发出的隐式 Intent 都至少有一个 category,就是 “android.intent.category.DEFAULT”,所以只要是想接收一个隐式 Intent 的 Activity 都应该包括”android.intent.category.DEFAULT” category,不然将导致 Intent 匹配失败。

    即:如果要启动的Activity的在AndroidManifest.xml文件中没有android.intent.category.DEFAULT这个category的话,就会匹配失败。

    从上面的论述还可以获得以下信息:

    • 一个 Intent 可以有多个 category,但至少会有一个,也是默认的一个 category。
    • 只有 Intent 的所有 category 都匹配上,Activity 才会接收这个 Intent。

    Android 源代码 【正在寻找自动添加的地方…】:

    寻找ing...
    
    

    引用: https://blog.csdn.net/jason0539/article/details/10049899

    个人博客: https://violinday.github.io

    相关文章

      网友评论

        本文标题:android.intent.category.DEFAULT的

        本文链接:https://www.haomeiwen.com/subject/yzaxkqtx.html