Android学习笔记——Intents 和 Intent Filters(二)

简介:

 本人邮箱:JohnTsai.Work@gmail.com,欢迎交流讨论。

      欢迎转载,转载请注明网址:http://www.cnblogs.com/JohnTsai/p/3993488.html

  • 知识点:

           继续昨天的Intents 和 Intent Filters的学习

    

  •   组成一个Intent(Building an Intent):

          Intent 对象携带信息(例如明确的组件名或应该接收intent的组件种类(intent category)),Android系统使用这些

     信息决定开启哪个组件。还携带了接收的组件使用的信息,为了完全的执行功能。

   

          Intent包含的基本信息有以下几种:

          1.组件名

复制代码
1 //1.组件名(Component name)
2 //目标组件的完全限制类名(fully qualified class name),包括app的包名。
3 // 例如com.johntsai.SecondActivity
4 //我们可以使用以下方法设置组件名
5  setComponent()
6  setClass()
7  setClassName()
8 //或者是Intent构造器
复制代码

 

         2.功能

复制代码
 1 //2.功能,活动(Action)
 2 //指定一般要执行的功能或者活动的字符串
 3 //我们可以指定Intent的action,使用以下方法
 4 
 5 setAction()
 6 //或是Intent构造器
 7 //如果我们构造自己的action,必须要包括我们app的包名作为前缀
 8 //例如:
 9    static final String ACTION_TIMETRAVEL 
10                   ="com.johntsai.action.TIMETRAVEL";
复制代码

        3.数据

复制代码
 1 //3.数据(Data)
 2 //URI(Uri对象)引用数据或MIME类型的数据
 3 //提供的data的类型一般由intent的action决定
 4 //例如action是ACTION_EDIT,那么data就应该包含可编辑的文档的URI
 5 //仅设置data URI
 6 setData()
 7 //仅设置MIME类型
 8 setType()
 9 //两者都设置
10 setDataAndType()
11 //提醒:如果你想要设置两者2,不能调用setData()和setType(),因为它们会使对方的数值无效。一般是使用setDataAndType()。
复制代码

       4.种类

1 //4.种类(Category)
2 //包含关于哪种组件应该处理Intent的附加信息的字符串
3 //一个intent可以有任意多个category说明
4 //指定category
5 addCategory()

 

          组件名、功能、数据、种类(component name,action,date,category)代表了一个Intent最典型的特点,

     通过读取这些属性,Android系统能决定开启哪个组件。

     5.附加部分

     

1 //5.附加部分(Extras)
2 //携带需要完成要求功能的附加信息的键值对(Key-value paris)
3 //声明我们自己的附加部分(我们的app的Intent接收)确保包含我们的应用包名作为前缀
4 //例如:
5 static final String EXTRA_GIGAWATTS = "com.johntsai.EXTRA_GIGAWATTS";

     

      6.标志

   

1 //6.标志(Flags)
2 //Flags指导Android系统怎样开启Activity(例如Activity属于哪个task)以及开启后怎样处理它(例如,它是否属于最近的Activity列表中)
3 setFlags();

   

     如果喜欢,请点推荐。

     To be Continued.....


原文地址:http://www.cnblogs.com/JohnTsai/p/3993488.html

相关文章
|
6月前
|
Android开发 开发者
Android基础知识:什么是Intent?有哪些类型的Intent?
Android基础知识:什么是Intent?有哪些类型的Intent?
414 0
|
1月前
|
存储 大数据 数据库
Android经典面试题之Intent传递数据大小为什么限制是1M?
在 Android 中,使用 Intent 传递数据时存在约 1MB 的大小限制,这是由于 Binder 机制的事务缓冲区限制、Intent 的设计初衷以及内存消耗和性能问题所致。推荐使用文件存储、SharedPreferences、数据库存储或 ContentProvider 等方式传递大数据。
62 0
|
3月前
|
Android开发
android基础:Intents 和 intent-filter 的匹配规则
这篇文章详细解释了Android开发中Intent和<intent-filter>的匹配规则,包括Action、Category和Data的解析规则以及如何通过这些规则匹配隐式Intent。
94 1
|
3月前
|
Java Android开发 UED
安卓scheme_url调端:如果手机上多个app都注册了 http或者https 的 intent。 调端的时候,调起哪个app呢?
当多个Android应用注册了相同的URL Scheme(如http或https)时,系统会在尝试打开这类链接时展示一个选择对话框,让用户挑选偏好应用。若用户选择“始终”使用某个应用,则后续相同链接将直接由该应用处理,无需再次选择。本文以App A与App B为例,展示了如何在`AndroidManifest.xml`中配置对http与https的支持,并提供了从其他应用发起调用的示例代码。此外,还讨论了如何在系统设置中管理这些默认应用选择,以及建议开发者为避免冲突应注册更独特的Scheme。
|
6月前
|
架构师 网络协议 算法
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
|
6月前
|
定位技术 Android开发
Intent在Android中的几种用法
Intent在Android中的几种用法
73 1
|
6月前
|
Java Android开发
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
111 1
|
6月前
|
消息中间件 缓存 架构师
2024年阿里Android高级面试题分享,附学习笔记+面试整理+进阶书籍
2024年阿里Android高级面试题分享,附学习笔记+面试整理+进阶书籍
|
Java Android开发
Android 中通过Intent传递类对象,通过实现Serializable和Parcelable接口两种方式传递对象
Android 中通过Intent传递类对象,通过实现Serializable和Parcelable接口两种方式传递对象
133 1