zoukankan      html  css  js  c++  java
  • Android学习笔记Intent二

    上篇随笔大概写了了Intent学习的大纲,这篇通过代码理解下Intent的ComponentName属性的使用
    ComponentName,中文意思是组件名称,通过Intent的setsetComponent方法可以启动一个Activity或者服务。

    实例化一个ComponentName需要两个参数,第一个参数是要启动应用的包名称,这个包名称是指清单文件中列出的应用的包名称:

    另外一个参数是要启动的Activity或者Service的类全名:

        Intent intent = new Intent();
        ComponentName componentName = new ComponentName("com.example.demo20200424", "com.example.demo20200424.DetailActivity");
        intent.setComponent(componentName);
        startActivity(intent);
    

    这样我们就启动了Activity了。
    那么这种方式和平常习惯用的:

        new IntentActivity(MainActivity.this,DetailActivity.class);
        ...
    

    有什么区别呢?通过打开IntentActivity(MainActivity.this,DetailActivity.class);的源码我发现,原来底层就是一个setComponent(componentName):

    所以两者直接是没有区别的。

    注意
    普通Activity或者Service需要在AndroidManifest.xml设置 exported = true
    入口Activity不需要的原因是,默认exported = true

  • 相关阅读:
    HTML常用标签及其属性
    初识Java
    JS中firstChild,lastChild,nodeValue属性
    前端网页进度Loading
    Git分支管理小结
    Vim文本编辑命令
    EF
    Linq
    委托(作用:解耦),lambda的演化
    单例模式
  • 原文地址:https://www.cnblogs.com/lzpq/p/12793916.html
Copyright © 2011-2022 走看看