Android开发之深入理解Intent
来源:互联网 发布:知世与艾利欧 艾知 编辑:程序博客网 时间:2024/04/30 01:28
Android发之深入理解Intent
前边我们提到intent在Activity之间传值点击查看博文
今天详细介绍Intent的相关属性:
Intent的七大属性:
1.intent的作用:
a,包装Android组件
b,启动Activity,启动service,启动广播
c,组件之间相互传值
2.显示启动Activity的属性 //显示是指要启动的Activity是固定的
ComponentName 包装Android组件
三种写法:
new Intent(getApplicationContext(),BActivity.class);
等同于
Intent intent=new Intent();
ComponentName cn=new ComponentName(getApplicationContext(),BActivity.class);
intent.setClass(cn);//设置意图包装的组件
第三种写法
intent.setClass(getApplicationContext(),BActivity.class);
3.隐示启动Activity的属性:
需要通过Action来指定启动的Activity ,这种Activity在注册时必须申明
<intent-filter>
<action android :name="自定义的action名称"/> //名称必须在整个Android应用系统中唯一 一般以类的全限定名
</intent-filter>
Action 属性一般和category一起使用 category用来标示Action启动组件的类型 一般是default类型
android.intent.category.DEFAULT 代表是普通的Activity组件
代码:
a. Intent intent =new intent(“自定义Action的名称”);
b. Intent intent =new Intent();
intent.setAction(“自定义Action的名称”);
在Android.menifest.xml中配置
<activity android:name=".Activity02" android:label="第二个页面" > </activity> <!-- 可以使用隐式方式启动组件 --> <activity android:name=".Activity03" android:label="第三个页面" > <intent-filter> <action android:name="com.example.intent01.Activity03" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>显示启动:
// 显示方式启动Activity02Intent intent = new Intent();//intent.setClass(getApplicationContext(), Activity02.class);intent.setComponent(new ComponentName(getApplicationContext(), Activity02.class)); startActivity(intent);隐式启动:
startActivity(new Intent("com.example.Intent01.Activity03")); //这是第一种写法Intent intent=new Intent(); intent.setAction("com.example.Intent01.Activity03"); startActivity(intent); //这是第二种写法
4.data属性:
指定Action之后,将必须的数据设置在此属性中 比如打电话要提供电话号码
对于不同的数据有不同的数据格式 如电话号码 tel:110
5. type属性(mimetype):如果data属性的值是文件路径 必须声明type属性来指定文件类型
如:文本文件 : text / *
6.extra 扩展属性:除了必要的数据以外的扩展数据
常用于Intent传值
7.flag 属性:影响启动组件的特性(运行模式)
常用位置:在广播接收器内,启动Activity组件时,必须设置flag属性:且为Intent.FLAG_NEW_TASK
intent.setFlags(Intent.FLAG_NEW_TASK);
public void call(View view) {Intent intent=new Intent(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:10086")); //Uri 统一资源标识符startActivity(intent);}public void internet(View view) { Intent intent=new Intent(Intent.ACTION_VIEW); //查看页面 根据数据类型判断 如果数据类型是网址 就调用浏览器 intent.setData(Uri.parse("http://www.qq.com")); startActivity(intent);}public void share(View view) {Intent intent=new Intent(Intent.ACTION_SEND);intent.setType("text/*");//选择类型 这里指文本类型intent.putExtra(Intent.EXTRA_TEXT, "这是分享的内容。。。");startActivity(intent);}
分别是打电话,浏览网页,分享 三个小功能
相关的功能还有很多,要自己多练习,多做才能记住熟练运用
- Android开发之深入理解Intent
- Android开发入门之Intent深入解剖
- Android之Intent深入
- 深入Android开发之--理解View#onTouchEvent
- 深入Android开发之--理解View#onTouchEvent
- 深入Android开发之--理解View#onTouchEvent
- 深入Android开发之--理解View#onTouchEvent
- Android入门开发之深入理解Activity
- 深入理解Android开发之JNi
- 深入学习android之Intent
- Android中Intent的深入理解
- Android开发之Intent
- Android开发之Intent
- Android开发之Intent
- Android开发之Intent
- Android开发之Intent
- Android开发之Intent
- Android开发之Intent
- android使用notifyDataSetChanged()方法更新数据失效,adapter的数据更新了,但是ListView的内容没有更新;
- iOS 学习框架图
- 蓝桥杯-基础练习-01字串
- java遍历集合删除特定元素的 java.util.ConcurrentModificationException异常
- spring回滚事务
- Android开发之深入理解Intent
- CSS3 新属性
- Error:Execution failed for task ‘:app:dexDebug’. > com.android.ide.common.process.ProcessException:
- C++的精髓——虚函数
- 怎么设置电脑锁屏不断网
- Hbase存储格式
- Apache Tomcat开机后台启动
- 连续函数的卷积分的详细形象解释
- OpenCV实践之路——方形图片对角线切割