Android中intent的作用,显式意图和隐式意图

来源:互联网 发布:网络十大帅哥排行榜 编辑:程序博客网 时间:2024/06/05 05:40
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);
  }
}
1 0
原创粉丝点击