Android显式和隐式Intent的区别和方式

intent总共分显示intent和隐式intent

一、显式ntent

显式的意思是指可以直接指定需要打开的Activity对应的Java的类,参考csdn

1.构造方法里直接传入Component,最常见
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
2、setComponent方法
ComponentName componentName = new ComponentName(this, SecondActivity.class);
// 或者ComponentName componentName = new ComponentName(this, "com.example.app016.SecondActivity");
// 或者ComponentName componentName = new ComponentName(this.getPackageName(), "com.example.app016.SecondActivity");
 
Intent intent = new Intent();
intent.setComponent(componentName);
startActivity(intent);
3.setClass/setClassName方法
Intent intent = new Intent();
 
intent.setClass(this, SecondActivity.class);
// 或者intent.setClassName(this, "com.example.app016.SecondActivity");
// 或者intent.setClassName(this.getPackageName(), "com.example.app016.SecondActivity");
		
startActivity(intent);

总结

显式Intent通过Component可以直接设置需要调用的Activity类,可以唯一确定一个Activity,意图明确,所以被称为显式。设置这个类的方式可以是
Class对象,也可以是包名加类名的字符串。

二、隐式

隐式,即不是想显式的那样直接指定需要调用的Activity类,隐式不明确指定启动那个Activity,而是设置Action、Data、Category,让系统来筛选出合适的Activity。筛选是根据所有的来筛选。

原文地址:https://www.cnblogs.com/wlxtuacm/p/11288134.html