Android08--Android之Intent的七大属性
2016-08-29 17:53
387 查看
1.什么是Intent
Android中的Inteng机制,提供了不同程序 之间 Activity Service BroadcastResever之间的通信与交互.Intent,意为”意图”,Intent是一种运行时机制,它能连接两个不同的组件,通过Intent,可以向Android表达某种请求和意愿,然后根据这个请求来选择相应的组件去做响应.
2.Intent的属性
Intent分显示和隐式启动第一类:启动,有ComponentName(显式),Action(隐式),Category(隐式)。
第二类:传值,有Data(隐式),Type(隐式),Extra(隐式、显式)。
第三类:启动模式,有Flag。
Intent总共有七个属性:分别为
component, action,categray,data, type, extra,flag
1.component(目标组件)
Intent intent = new Intent(); ComponentName name = new ComponentName(MainActivity.this, "com.xiaohong.activity_bymyself.OtherActivity"); intent.setComponent(name); startActivity(intent);
和下面一样的结果:
Intent intent = new Intent(this, OtherActivity.class); startActivity(intent);
2,action和categray
Action中指定了Intent要完成的动作,在activity中可以使用setAction()设置,它分为系统Action和自定义的action.Action大多时候都是和Category一起使用的,所以这里我们将这两个放在一起来讲解。Intent中的Action我们在使用广播的时候用的比较多,在Activity中,我们可以通过设置Action来隐式的启动一个Activity.
调用系统的action
// 会开启系统中所有的app Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); startActivity(intent);
自定义的Action
清单文件中:
<activity android:name=".OtherActivity"> <intent-filter> <action android:name="MYSELF_ACTION" /> <category android:name="com.xiaohong.activity_bymyself.OTHER_CATEGORY"/> <!--一定加上--> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
隐式Intent的创建:
Intent intent = new Intent("MYSELF_ACTION"); intent.addCategory("com.xiaohong.activity_bymyself.OTHER_CATEGORY"); startActivity(intent);
3.data
指定要执行的动作要操作的数据4.type
5.eatra
6.flag
在activity之间一般不需要设置flag,在sevice.prodercastResever中 一般要设置这个,因为他们不自带任务栈.说明:
注意一个方法:
// 当一个Activity被重新执行而不创建的时候调用的方法. @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); }
外加:
Activity之间的跳转,如果需要加上动画:
@Override public void onClick(View v) { ((TextView) v).setText("已点击"); Intent intent = new Intent(this, OtherActivity.class); ActivityOptionsCompat compat = ActivityOptionsCompat.makeScaleUpAnimation(v, v.getWidth() / 2, v.getHeight() / 2, 0, 0); ActivityCompat.startActivity(this, intent, compat.toBundle()); }
参考文献:
http://blog.csdn.net/weihan1314/article/details/7973511
http://www.2cto.com/kf/201512/452648.html
相关文章推荐
- Android11_Intent及其七大属性及intent-filter设置
- 微子学Android之Intent的七大属性
- android之Intent的七大属性
- Android之五种进程、访问修饰符、Intent七大属性
- Android-intent-七大属性详解
- android之Intent的七大属性
- Android之Intent及其七大属性
- android自学第六天 Activity管理及Intent七大属性
- 【幻化万千戏红尘】qianfeng-Android-Day06-Intent七大属性基础学习:
- Android10_Intent及其七大属性及intent-filter设置
- (转)Android10_Intent及其七大属性及intent-filter设置
- 【Android基础笔记06】Activity管理及Intent七大属性
- Android 程式开发:(四)使用Intent调用“内置”应用 —— 4.4添加Category属性
- android 视频播放器的INTENT-FILTER属性
- Android开发–Intent-filter属性详解
- android Intent的Action、Category属性
- Android学习之——intent-fliter配置之data属性
- Android开发--Intent-filter属性详解
- Intent七大属性之总结
- Android中Intent的Action、Category属性与intent-filter配置