一个activity启动另一个activity最简单的方法就是使用startActivity(Intent)方法,activity调用这个方法时,嗲用请求实际发送给了操作系统的ActivityManager。ActivityManager负责创建Activity实例并调用其onCreate(Bundle)方法。
ActivityManager该启动哪个activity就在于传入startActivity(Intent)方法的Intent参数。
intent对象是component用来与操作系统通信的一种媒介工具,activity就是一种component。intent可以使用一下构造方法来告诉ActivityManager该启动哪个activity:
public Intent(Context packageContext,Class<?> cls)
传入该方法的Class类型参数告诉ActivityManager应该启动哪个activity;Context参数告诉ActivityManager在哪里可以找到它。在启动activity之前,ActivityManager会确认指定的Class是否在manifest配置文件中声明。
intent分为显示intent和隐式intent。如果通过指定Context对象与Class对象,然后调用intent的构造方法来创建Intent,则创建的是显示intent。在同一应用中,我们使用显示intent来启动activity。一个应用的activity如需启动另一个应用的activity,可通过创建隐式intent来