Intent的显式隐式调

来源:互联网 发布:java简历包装真实项目 编辑:程序博客网 时间:2024/06/06 04:45

跳转部分的代码:

Intent intent;

switch (v.getId()) {
//显式调用
case R.id.main_btn1:
intent = new Intent(MainActivity.this,FristActivity.class);
startActivity(intent);
break;
//隐式调用
case R.id.main_btn2:
//一个activity只能有一个action可以指定多个Category
intent = new Intent("android.intent.action.FRIST");
intent.addCategory("android.intent.category.FRIST");
startActivity(intent);
break;
//隐式调用网页
case R.id.main_btn3:
//一个activity只能有一个action可以指定多个Category
intent = new Intent(Intent.ACTION_VIEW);
/*setData接受一个Uri对象,可以在<intent-filter>标签中配置一个<data>标签
1.  android:scheme
用于指定数据的协议部分,如上例中的 http部分。
2.  android:host
用于指定数据的主机名部分,如上例中的 www.baidu.com部分。
3.  android:port
用于指定数据的端口部分,一般紧随在主机名之后。
4.  android:path
用于指定主机名和端口之后的部分,如一段网址中跟在域名之后的内容。
5.  android:mimeType
用于指定可以处理的数据类型,允许使用通配符的方式进行指定。
geo表示显示地理位置*/
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
break;
//隐式调用网页跳转自定义页面
case R.id.main_btn4:
intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
break;
//隐式调用拨打电话
case R.id.main_btn5:
intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
break;

}

清单文件中配置:

        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".FristActivity"
            android:label="@string/title_activity_frist" >
            <intent-filter>
                <action android:name="android.intent.action.FRIST" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.FRIST" />
            </intent-filter>
        </activity>
        <activity
            android:name=".SecondActivity"
            android:label="@string/title_activity_second" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="http" />
            </intent-filter>
        </activity>

0 0