Android中intent的作用,显式意图和隐式意图
2016-04-01 18:17
645 查看
Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件。使用Intent可以激活Android应用的三个核心组件:活动、服务和广播接收器。
Intent可以划分成显式意图和隐式意图。
显式意图:调用Intent.setComponent()或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
隐式意图:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。
Android中的Intent有两大作用。
一、用来启动其他新的Activity。
二、作为传递数据和事件的桥梁。传递数据时的代码有两种:
第一种是:
Intent intent = new Intent(CurrentActivity.this , OtherActivity.class);
intent.putExtra(“data” , somedata);
第二种是:
新建一个Bundle,再把该Bundle加入intent,如:
Bundle bundle = new Bundle() ;
bundle.putString(“data” , somedata) ;
intent.putExtras(bundle)。
在第二个Activity中取出第一个Activity传递过来的数据:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
//取得从上一个Activity当中传递过来的Intent对象
Intent intent = getIntent();
//从Intent当中根据key取得value,实现两个Activity之间数据的传送。
String value = intent.getStringExtra("testIntent");
//根据控件的ID得到响应的控件对象
myTextView = (TextView)findViewById(R.id.myTextView);
//为控件设置Text值
myTextView.setText(value);
}
}
Intent可以划分成显式意图和隐式意图。
显式意图:调用Intent.setComponent()或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
隐式意图:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。
Android中的Intent有两大作用。
一、用来启动其他新的Activity。
二、作为传递数据和事件的桥梁。传递数据时的代码有两种:
第一种是:
Intent intent = new Intent(CurrentActivity.this , OtherActivity.class);
intent.putExtra(“data” , somedata);
第二种是:
新建一个Bundle,再把该Bundle加入intent,如:
Bundle bundle = new Bundle() ;
bundle.putString(“data” , somedata) ;
intent.putExtras(bundle)。
在第二个Activity中取出第一个Activity传递过来的数据:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
//取得从上一个Activity当中传递过来的Intent对象
Intent intent = getIntent();
//从Intent当中根据key取得value,实现两个Activity之间数据的传送。
String value = intent.getStringExtra("testIntent");
//根据控件的ID得到响应的控件对象
myTextView = (TextView)findViewById(R.id.myTextView);
//为控件设置Text值
myTextView.setText(value);
}
}
相关文章推荐
- android自定义View基础之------android坐标系
- Android MTK 6572 光感/TP控制
- Android_新建animation动画res/anim目录
- Android利用Camera实现图片的旋转动画 .
- Android自己定义DataTimePicker(日期选择器)
- Android开发小技巧系列之避免Toast连续弹出
- Android 获取listview中Item的可视百分比
- Android的性能优化
- Android开发中经常会用到的功能代码
- 【Dialer】自定义暗码进入测试模式
- Android移动应用开发中常见的经验技巧总结
- Android快速毛玻璃虚化效果实现
- Android Asynctask与Handler的比较,优缺点区别,Asynctask源码
- Android 获取控件宽高的3种方法
- android shape的使用
- 通过包名,直接精确启动一个三方Activity
- Android 5.0 CardView+ListView 卡片布局应用
- 【Dialer】android6.0拨号界面分析<一>
- Android fragment 重叠问题的解决方法
- 在Android Studio中有六种依赖