Android 中各个组件主要是通过Intent来通讯。
Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。
因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。
1.intent数据传递
intent中的数据传递,我们可以采用两中方式来实现,如果是简单的数据类型的数据可以直接采用Bundle来传递,而且bundle可以传递多个值,具体实现如下:
Bundle bundle =new Bundle();
bundle.putString("userName", "zhangsan");
bundle.putString("password", "123456");
intent.putExtras(bundle);
如果是传递集合或者对象那么需要采用intent中提供的putExtra方法,实现如下:
UserVO userVO =new UserVO(); //该对象需要实现Serializable接口
userVO.setUserName("wuhen");
userVO.setPassword("ling");
intent.putExtra("userVO", userVO);
2.关于intent的申明有显示申明和隐式申明,采用显示的申明非常的简单
Intent intent = new Intent(ActivityTestActivity.this, ActivityB.class);
startActivity(intent);
如果是隐式的申明稍微比较复杂点
Intent intent =new Intent();
intent.setClass(ActivityTestActivity.this, ActivityB.class);
或者设置setComponent
android提供了许多标注的action,例如打电话,发邮件,发短息等等。