Intent作用
使用intend可以在各个Activity间来回切换,可以在不同的界面实现传递数据。
其中!startActivity(intent),这个方法式用来启动Activity的,达到各个Activity切换的目的
安卓中的Intent种类
显式Intent
从字面来理解的话,那就是“明显的意图”意思,这个意图到底有多明显呢?
//显式的Intent启动Activity
findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//显式的activity启动SecondActivity
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);
}
});
就是在intent对象中的指定上下文对象和要启动的Activity的class文件就可以了,这就是显式的intent,直接了当不拐弯抹角!会直接启动一个Activity
隐式Intent
这种的intent从字面上的理解就是“隐晦的意图”,也就是说这些intent没有直接显式intent那么直接。它会有一些参数或者说有一些附加条件才会响应
//隐式的Intend打开网页
findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://www.baidu.com/"));
startActivity(intent);
}
});
一般会设定intent可以响应的动作类型,如“Intent.ACTION_VIEW”。这个intent只有动作类型也是Intent.ACTION_VIEW类型的Activity才能相应该intent,Activity中的intent的类型在intent-filter中的进行限定
在隐式intent中的intent-fliter中的category有更加详细的响应限定还有data属性也可以指定要响应的数据类型