Android中<intent-fliter>的作用以及隐式intent
定义一个新的activity,然后在AndroidManifest.xml中注册时,如下:
<activity android:name=".TestActivity"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="http"/> </intent-filter> </activity>
个人的理解为:这个activity可以完成android.intent.action.VIEW这件事情。它是系统所定义的一个字符串,也可以自定义一个字符串,表示该activity能够完成的事情。
因此,在调用该activity时,可以如下:
Button bt3 = (Button) findViewById(R.id.button3); bt3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"你点击了button3",Toast.LENGTH_SHORT).show(); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent); } });
在new一个Intent对象的时候,传入的参数是Intent.ACTION_VIEW,它是android.intent.action.VIEW的简写。该Intent对象的意思,个人理解为:
我现在需要一个能够完成Intent.ACTION_VIEW这件事情的activity,你们谁有啊?
然后点击这个button之后呢,就会出现2个选项,一个是你刚才创建的那个activity,一个是浏览器。