![](https://img.haomeiwen.com/i3276385/ebe140a393ee8d29.png)
一、显式意图和隐式意图
![](https://img.haomeiwen.com/i3276385/b4b6bdb8bab6a7ed.png)
1.1 显式
![](https://img.haomeiwen.com/i3276385/6d15170ec6c3a6de.png)
package com.example.jony.appdemo1;
import android.content.ComponentName;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button btn_one;
private Button btn_two;
private Button btn_three;
private Button btn_four;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_one = (Button) findViewById(R.id.btn_one);
btn_two = (Button) findViewById(R.id.btn_two);
btn_three = (Button) findViewById(R.id.btn_three);
btn_four = (Button) findViewById(R.id.btn_four);
btn_one.setOnClickListener(this);
btn_two.setOnClickListener(this);
btn_three.setOnClickListener(this);
btn_four.setOnClickListener(this);
// btn_one.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// System.out.println("点击按钮1");
// Intent intent = new Intent();
// intent.setClass(MainActivity.this, Activity1.class);
// startActivity(intent);
// }
// });
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btn_one:
Intent intent1 = new Intent();
intent1.setClass(this, Activity1.class);
startActivity(intent1);
break;
case R.id.btn_two:
Intent intent2 = new Intent();
intent2.setClassName(this, "com.example.jony.appdemo1.Activity1");
startActivity(intent2);
break;
case R.id.btn_three:
Intent intent3 = new Intent();
//可以打开其他应用的Activity
intent3.setClassName("com.example.jony.appdemo1", "com.example.jony.appdemo1.Activity1");
startActivity(intent3);
break;
case R.id.btn_four:
Intent intent4 = new Intent();
intent4.setComponent(new ComponentName(this, Activity1.class));
startActivity(intent4);
break;
default:
break;
}
}
}
1.2 隐式
作用:可用于分享给与自身配置了同样的intent-filter的应用程序
<activity android:name=".Activity2">
<intent-filter>
<action android:name="com.appdemo1.activity2" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
case R.id.btn_five:
Intent intent5 = new Intent();
intent5.setAction("com.appdemo1.activity2");
intent5.addCategory(Intent.CATEGORY_DEFAULT);
startActivity(intent5);
break;
二、 Intent Filter
startActivity(intent5)
-->将intent传给所有的Activity组件
-->s首先排除没有配置Intent Filter的Activity组件
-->过滤器对Intent Filter的内容进行匹配(所有的程序)
-->如果没有匹配的则报错,匹配的显示,让用户选择
![](https://img.haomeiwen.com/i3276385/dfb9e7bc49c32254.png)
网友评论