在进行activity跳转时,大家经常会使用intent的setClass,除了setClass还可以使用ComponentName 。
//组件名称,第一个参数是包名,也是主配置文件Manifest里设置好的包名
第二个是类名,要带上包名
ComponentName com = new ComponentName("com.huawei", "com.huawei.Test1");
Intent intent = new Intent();
//设置部件
intent.setComponent(com);
startActivity(intent);
经查看源码发现 Intent 的setClass() 方法的实现正是使用ComponentName 类:
public Intent setClass(Context packageContext,Class<?> cls){
mComponent=new ComponentName(packageContext,cls);
return this;
}
Intent 的 构造方法也是如此:
public Intent(Context packageContext,Class<?> cls){
mComponent=new ComponentName(packageContext,cls);
}
public Intent setComponent(ComponentName component){
mComponent =component;
return this;
}
总结:最好要知道自己写的每一行代码的原理,自己才能飞的更高。
参考:http://blog.csdn.net/linuxcjh/article/details/8645211