Android中显式意图和隐式意图的区别
1.显式意图
可以直接通过名称开启指定的目标组件:
通过构造方法Intent(Context packageContext,class<?>cls)来实现。
button_1 = (Button) findViewById(R.id.button_1); button_1.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { // finish(); //显示意图 Intent intent = new Intent(MainActivity.this,SecondActivity.class); startActivity(intent); } }); }
2.隐式意图
比较抽象,它并没有明确的指定要开启哪个目标组件,而是通过指定action和category等属性信息,系统根据这些信息进行分析,然后寻找目标Activity
添加一个category,需要在注册文件中加一行代码
@Override public void onClick(View view) { //隐式意图 Intent intent = new Intent("com.example.activitytest.ACTION_START"); //添加一个category,需要在注册文件中加一行代码 // <category android:name="com.example.activitytest.MY_CAT EGORY"/> startActivity(intent); intent.addCategory("com.example.activitytest.MY_CATEGORY"); } }); }
//隐式意图更多用法 Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent);