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。篩選是根據所有的