Intent及其使用方法
一、Intent介绍
Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动 作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的 交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。
二、Intent的作用及其使用场合
Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯。Intent主要是用来启动其他的 activity 或者service,所以可以将intent理解成activity之间的粘合剂。
其使用场合主要分为以下三种:
- 启动一个Activity
(1) Activity.startActivity(Intent intent); //启动一个Activity
(2) Activity.startActivityForResult(Intent intent, int requestCode); //启动一个带请求码的Activity,当该Activity结束时将回调原Activity的onActivityResult()方法,并返回一个结果码。 启动一个Service
(1) Context.startService(Intent service);(2)Context.bindService(Intent service, ServiceConnection conn, int flags);
启动一个Broadcast
(1)sendBroadcast(Intent intent);
sendBroadcastAsUser(Intent intent, UserHandle user);(2) sendStickyBroadcast(Intent intent);
sendStickyBroadcastAsUser(Intent intent, UserHandle user);(3) sendOrderedBroadcast(Intent intent, String receiverPermission);
sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission,
BroadcastReceiver resultReceiver,Handler scheduler, int initialCode, String initialData, Bundle initialExtras);三、Intent的使用方法
启动一个新的Activity
通过实例化一个Intent对象,指定需启动的目标Activity:
Intent it1 = new Intent(this, Main2Activity.class);
startActivity(it1);
- Activity间传值
直接传值:
Intent it2 = new Intent(this, Main2Activity.class);
it2.putExtra("team", "地表最强战队");
it2.putExtra("name", "周杰伦");
startActivity(it2);
接收:
Intent it_get = getIntent();
team = it_get.getStringExtra("team");
name = it_get.getStringExtra("name");
捆绑传值,使用Bundle:
Intent it2 = new Intent(this, Main2Activity.class);
Bundle bd = new Bundle();
bd.putString("team", "地表最强战队");
bd.putString("name", "周杰伦");
it2.putExtras(bd);
startActivity(it2);
接收:
Intent it_get = getIntent();
Bundle bd_get = it_get.getExtras();
team2 = bd_get.getString("team");
name2 = bd_get.getString("name");
- 发送带回调方法的Intent
startActivityForResult用法详解