ComponentName
深入分析:Android中app之间的交互(二,使用ComponentName)
android中应用程序之间的调用 需要借助 ComponentName来实现。
使用ComponentName来与当前应用之外的应用进行交互。
ComponentName这个类;ComponentName与Intent同位于android.content包下,我们从Android官方文档中可以看到,这个类主要用来定义可见一个应用程序组件,例如:Activity,Service,BroadcastReceiver或者ContentProvider。
这是ComponentName的构造函数:ComponentName(String pkg,String cls)
我们知道在Android应用程序中如果要详细描述一个组件我们需要知道该组件所在的应用包名,也就是在AndroidManifest.xml文件中manifest根结点下的package=“XXX.XXXXX.XXXXX",还有组件在应用程序中的完整路径名,拿Activity来说,也就是activity节点中name属性的值。因此到这里我们也就明白了可以使用ComponentName来封装一个组件的应用包名和组件的名字。
我们已经知道,在Android中组件之间的交流往往使用意图(Intent)来完成的,那么在Intent中有一个方法可以封装一个ComponentName,最后我们在使用意图去完成我们需要实现的功能。
ComponentName componetName = new ComponentName(
// 这个是另外一个应用程序的包名
"cn.com.thtf.pay.sdk",
// 这个参数是要启动的Activity 调用sdk收银台 用于刷卡支付&账户支付
"cn.com.thtf.pay.sdk.CheckstandActivity");
注意 我们这个地方不再是使用 隐式跳转的方式 实现我们的跳转 而是借助ComponentName实现我们的不同程序之间的跳转。
activity之间在跳转的时候 有两种方式实现我们的跳转 就是我们的显式和隐式跳转
Bundle bundle = new Bundle();
intent.putExtras(bundle);
intent.setComponent(componetName);