访问其余应用程序的Activity

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

相关文章
相关标签/搜索