关于Intent知识点的总结
2017-05-09 10:25
309 查看
Intent:
Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的activity,
service和broadcast receiver之间的交互。
Intent是一种运行时绑定(runtime binding)机制,它能在程序运行的过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来响应。
关键:应用与应用之间通信,同一个应用不同组件(activity,service,broadcastReceiver)通信
不同应用之间交互常用方法:
1.Content Provider (数据共享,不需要Intent)
2.通过activity或broadcastReceiver中的ACTION来交互
eg:不同应用交互:(最简单的方式)
App1 发送方:
App2 接收方:
2.Intent 属性介绍:
Intent由以下各个组成部分:
component(组件):目的组件 :(类似 intent.setClass(Base1Activity.this, Base2Activity.class);
)
action(动作):用来表现意图的行动
category(类别):用来表现动作的类别
在显示Intent跳转的时候,不需要指定category,但是隐示跳转的时候,指定了category,在清单文件必须加上该category属性
data(数据):表示与动作要操纵的数据
type(数据类型):对于data范例的描写
extras(扩展信息):扩展信息 (可以把需要的参数传进来,带到另外的组件)intent.putExtras("xxx","xxx");
Flags(标志位):期望这个意图的运行模式
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//用于在非activity里面跳转到activity中
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//activity依次ABCD,想从D到B,加了这个就为AB,不加ABCDB
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);//activity不存在栈,用完即消。
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);//把activity设置为栈顶,经常与newIntent()配合使用。
Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的activity,
service和broadcast receiver之间的交互。
Intent是一种运行时绑定(runtime binding)机制,它能在程序运行的过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来响应。
关键:应用与应用之间通信,同一个应用不同组件(activity,service,broadcastReceiver)通信
不同应用之间交互常用方法:
1.Content Provider (数据共享,不需要Intent)
2.通过activity或broadcastReceiver中的ACTION来交互
eg:不同应用交互:(最简单的方式)
App1 发送方:
Intent intent = new Intent("XXX.XXX.XXX");//action一定要匹配才能接收到 intent.putExtra("intent_data","可以携带数据"); startActivity(intent);
App2 接收方:
<activity android:name=".BaseActivity"> <intent-filter> <action android:name="XXX.XXX.XXX" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
2.Intent 属性介绍:
Intent由以下各个组成部分:
component(组件):目的组件 :(类似 intent.setClass(Base1Activity.this, Base2Activity.class);
)
ComponentName cn = new ComponentName(Base1Activity.this, "包名.Base2Activity"); intent.setComponent(cn);
action(动作):用来表现意图的行动
Intent intent = new Intent(); intent.setAction("XXX.XXX.XXX"); // action可以是系统的,也可以是自定义的
category(类别):用来表现动作的类别
在显示Intent跳转的时候,不需要指定category,但是隐示跳转的时候,指定了category,在清单文件必须加上该category属性
Intent intent = new Intent("xxx.xxx.xxx"); //action // intent.addCategory("xxx.xxx.xxx"); //指定了category,则接收的时候必须指定,不然不能接收,category可以允许多个 startActivity(intent); //没有指定category,则接收的时候加载默认的就可以了
<activity android:name=".BaseActivity"> <intent-filter> <action android:name="XXX.XXX.XXX" /> <category android:name="xxx.xxx.xxx" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
data(数据):表示与动作要操纵的数据
type(数据类型):对于data范例的描写
extras(扩展信息):扩展信息 (可以把需要的参数传进来,带到另外的组件)intent.putExtras("xxx","xxx");
Intent intent = new Intent(); //data+type配合 用于调用系统组件,但是注意的是需要在清单文件下面配置各个权限 intent.setAction(Intent.ACTION_VIEW); Uri data = Uri.parse("http://www.baidu.com"); intent.setData(data); startActivity(intent);
Flags(标志位):期望这个意图的运行模式
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//用于在非activity里面跳转到activity中
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//activity依次ABCD,想从D到B,加了这个就为AB,不加ABCDB
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);//activity不存在栈,用完即消。
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);//把activity设置为栈顶,经常与newIntent()配合使用。
相关文章推荐
- 同学分享的一篇关于python知识点的总结(挺好,故转载)
- 关于程序中Activity若干问题知识点总结
- android开发中关于PendingIntent的知识点
- Android中关于Animation和Animator动画的知识点总结
- 关于UITableView的一些细小的知识点总结(持续更新)
- 关于java一些知识点的总结
- 关于intent.getParcelableArrayListExtra()报NullPointerException总结
- 自己关于java编程的部分知识点总结
- 关于c语言动态分配内存的知识点的总结(总结)
- 关于SQLite在Android开发中的知识点总结
- 关于Intent和IntentFilter的总结
- 关于最近面试的知识点的总结
- 关于线程的知识点总结
- 关于二分图的知识点零星总结
- ios关于frame等知识点的总结一
- 关于C语言知识点总结(随时更新中)
- iOS开发中关于UIImage的知识点总结
- 安卓 关于Intent四个属性的总结
- 关于SSH框架的基础知识点总结
- iOS开发中关于UIImage的知识点总结