【android】4、启动组件

1、四种组件中的activity、服务和广播接收者都通过Intent的异步消息进行启动,Intent会在运行时去各个组件相互绑定(可以将Intent视为其他组件请求操作的信使。)无论组件属于自己应用还是其他应用,都可以进行绑定。

2、Intent使用Intent对象创建,他定义的消息用于启动特定组件或者特定类型的组件,可以显式、隐式启动。

3、对于Activity和服务,Intent定义要执行的操作,并且可以指定要执行操作的数据的uri。例如:Intent传达的请求可以启动一个显式图像或者打开也i按的activity。在某些情况下,可以启动activity来接受结果,在这种情况下,activity也会在intent中返回结果。比如:可以发起一个intent,让用户选取某位联系人并将其返回。

①Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent)

②Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent,1);

4、对于广播,Intent只会定义要广播的通知,比如:指示设备电量不足的广播指示包括“电量不足”的已知操作字符串。

5、intent不会启动Content Provider,Content Provider会称为Content Resolver的请求目标时启动,内容解析程序通过内容提供程序处理直接事务,使得通过提供程序执行事务的组件可以无需执行事务,而是该在Content Provider对象上调用方法,这使得在内容提供程序和请求信息的组件之间流出一个抽象层(确保安全)

6、启动方法
①通过Intent传递到startActivity()或startActivityForResult()来启动activity(或者安排其他新任务)
②通过intent传递到startService()来启动服务(对执行中的服务下达新指令)。也可以通过intent传递到BindService()来绑定该服务
③通过intent传递到sendBroadcase()、sendOrderedBroadcase()或sendStickyBroadcase()等方法发起广播;
④通过contentResolver上调用query()来对内容提供程序执行查询。

猜你喜欢

转载自blog.csdn.net/J675620982/article/details/78611450