Activity既能够在进程内(同一个应用程序)访问,也能够进程之间进行(跨进程)访问。若是想在同一个应用程序中访问Activity,须要指定Context对象和Activity的Class对象,代码以下:android
Intent intent = new Intent(this , Test.class ); this
startActivity(intent);code
Activity的跨进程访问和进程内部访问有所不一样。虽然它们都须要Intent对象,但跨进程访问并不须要指定Context对象和Activity的 Class对象,而须要指定的是要访问的Activity所对应的Action(一个字符串)。有些Activity还须要指定一个Uri(经过 Intent构造方法的第2个参数指定)。
在Android系统中有不少应用程序提供了能够跨进程访问的Activity,例如,下面的代码能够直接调用拨打电话的Activity。对象
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:12345678" ); 进程
startActivity(callIntent); 字符串
执行上面的代码后,系统会自动拨号。get
在调用拨号程序的代码中使用了一个Intent.ACTION_CALL常量,该常量的定义以下:it
public static final String ACTION_CALL = "android.intent.action.CALL" ; io
这个常量是一个字符串常量,也是咱们在这节要介绍的跨进程调用Activity的关键。若是在应用程序中要共享某个Activity,须要为这个 Activity指定一个字符串ID,也就是Action。也能够将这个Action看作这个Activity的key。在其余的应用程序中只要经过这个 Action就能够找到与Action对应的Activity,并经过startActivity方法来启动这个Activity。class