Intent封装Android应用程序需要启动启动某一个组件的“意图“。不仅如此,Intent还是应用程序组件之间通信的重要媒介,正如以往程序看到的,两个Activity可以把需要交换的数据封装成Bundle对象,这样就实现了两个Activity之间的数据交换。
使用Intent启动系统程序
Android的应用程序包含三种重要组件:Activity、Service、BroadcastReceiver,应用程序采用了一致的方式来启动它们——都是依靠Intent进行启动的,Intent就封装了程序想要的启动程序的意图,不仅如此,Intent还可用于与启动组件交换信息。使用Intent启动系统组件
组件类型 | 启动方法 |
---|---|
Activity | startActivity(Intent intent) |
startActivityForResult(Intent intent,int requestCode) | |
Service | ComponentName startService(Intent service) |
boolean bindService(Intent service,ServiceConnection conn,int flags) | |
BroadcastReceiver | sendBroadcast(Intent intent) |
sendBroadcast(Intent intent,String receiverPermission) | |
sendOrderedBroadcast(Intent intent,String receiverPermission,BroadcastReceiver resultReceiver,Handler scheduler,int initialCode,String initialData,Bundle initialExtras) | |
sendOrderedBroadcast(Intent intent,String receiverPermission) | |
sendStickyBroadcast(Intent intent) | |
sendStickyBroadcast(Intent intent,BroadcastReceiver resultReceiver,Handler scheduler,int initialCode,String initialData,Bundle initialExtras) |
Intent代表了Android应用的启动“意图“,Android应用将会根据Intent来启动指定组件,至于到底启动哪个组件,则取决于Intent的各属性。
Intent对象大致包含Component、Action、Category、Data、Type、Extra和Flag这7种属性,其中Component用于明确指定需要启动的目标组件,而Extra则用于“携带“需要交换的数据。