关于Intent知识点的总结
来源:互联网 发布:数学分析书籍知乎推荐 编辑:程序博客网 时间:2024/05/22 03:36
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 发送方:
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()配合使用。
0 0
- 关于Intent知识点的总结
- 4.Intent 知识点总结
- 关于线程的知识点总结
- 关于Scroview的知识点总结
- 关于XML的知识点总结
- 关于Intent和IntentFilter的总结
- 关于最近面试的知识点的总结
- 关于java一些知识点的总结
- 关于二分图的知识点零星总结
- 关于UITableView的一些细碎知识点总结
- 关于安卓的知识点总结
- 关于ajax的基础知识点总结
- java中关于继承的知识点总结
- java中关于接口的知识点总结
- 关于总线的小知识点总结
- 关于死锁的一些知识点总结
- 关于块状元素的一些知识点总结
- 关于const知识点总结
- 剑指Offer面试题21 & Leetcode155
- ubuntu 14.04 lts+ ros indigo+kinect2 驱动安装
- 数据库-视图(View)详解
- httppost请求发过来的json对象转java对象
- python:TypeError: this constructor takes no arguments解决方法
- 关于Intent知识点的总结
- Android处理滑动与点击事件的冲突
- Android 键盘开发心得
- Android 进程间通信AIDL
- React innerHTML
- Ext.Net
- 自动求出成绩系统
- Eclipse 项目转 Android Studio 添加代码文件夹并显示文件夹右下角的黄色库文件图标
- centos7 若干命令行笔记