什么是Intent?为什么要有Intent的?又有什么作用?
带着3个这样的问题来理解Intent。
“Intent”的中文意思是“意图”,Intent是java类,它是应用程序组件之间通信的重要信使。通常我们把意图(可能是启动某个Activity的意图)封装到Intent里,再由系统去执行我们的意图。启动者与被启动者是不直接联系的,至于为什么要这样,那是为了高层次解耦。Android使用Intent来封装yitu,不管程序想要启动一个Activity也好,还是一个Service也好,BroadcastReceiver也好,统一使用Intent封装,明显便于理解。
Intent另一个作用是,当我想用启动一个具有某个特征的组件,但是又不是明确指明时,用Intent完全可以做到,至于启动那个,便是系统所决定了。
下面是具体的用法:
Android中Activity,Service,BroadcastReceiver直接启动都使用了Intent。Intent封装了程序想要启动程序的意图,另外Intent还可以用于两个组件之间交流信息。
启动组件 | 常用方法 |
---|---|
Activity | public void startActivity(Intent intent) |
public void startActivityForResult(Intent intent, int requestCode) | |
Service | public boolean bindService(Intent service, ServiceConnection conn,int flags) |
public ComponentName startService(Intent service) | |
BroadcastReceiver | public void sendBroadcast(Intent intent) |
public void sendBroadcast(Intent intent, String receiverPermission) | |
public void sendOrderedBroadcast(Intent intent,String receiverPermission); |
那么Intent如何表达意图
通常只要设置Intent的属性即可。
例如当明确知道需要启动的Activity时,在构造Intent对象就可以设置
再调用startActivity(intent)便可以启动下一个Activity
例如Service
调用startService(intent)启动Service
例如:
调用sendBroadcast(intent)发送广播