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,一个是浏览器。

posted @ 2016-04-20 09:25  小杀特杀宇  阅读(332)  评论(0编辑  收藏  举报