tip8——intent的7个属性

本文详细介绍了 Android 中 Intent 的多种使用方式,包括通过组件名称直接查找组件的方法、使用 action 属性的间接方法、结合 category 属性的使用、data 和 type 属性的应用场景以及如何利用 extras 存储跳转页面时的数据和 flag 属性的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.显式意图,Component属性

            //通过组件名称直接查找组件(通过component属性
                Intent intent1 = new Intent();
                ComponentName componentName = new ComponentName(this,Main9Activity.class);
                intent1.setComponent(componentName);

                //第二种写法
//                Intent intent = new Intent(this,Main9Activity.class);

                //第三种写法
//              Intent intent = new Intent();  
//              intent.setClass(HelloActivity.this, OtherActivity.class);  

                startActivity(intent1);

2.Action属性

            //使用间接法(通过action属性
            //在配置文件中,在未有分类时,category必须要有默认的
                Intent intent2 = new Intent();
                intent2.setAction("com.example.john.action");
                startActivity(intent2);

在配置文件中:
category的默认属性必须要有,不然会报错

<intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

3.Category属性


            //使用间接法,(通过action属性和category属性
            //虽然这里自己添加了category,但是配置文件中默认的category必须要写上,不然还是会报错
                Intent intent3 = new Intent();
                intent3.setAction("com.example.john.action");
                intent3.addCategory("com.example.john.category");
                startActivity(intent3);

在配置文件中:

<intent-filter>
                <action android:name="com.example.john.action" />

                <category android:name="com.example.john.category" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

4.data属性


            //data属性,通常与action一起使用(是最常见的使用
                Intent intent4 = new Intent();
                intent4.setAction("android.intent.action.VIEW");
                Uri data = Uri.parse("http://www.baidu.com");
                intent4.setData(data);
                startActivity(intent4);

在配置文件中:

<intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                <data
                    android:host="www.baidu.com"
                    android:scheme="http" />
            </intent-filter>

5.type属性


            //type属性,表示数据的类型
            //setData()会把type设为空,setType()会把data设置为空
                Intent intent5 = new Intent();
                intent5.setAction("android.intent.action.VIEW");
                Uri data2 = Uri.parse("http://www.baidu.com");
                //setData()和setType()不能一起用,要同时设置的话就要用setDatatAndType()来设置Data的type
                intent5.setDataAndType(data2,"text/html");
                startActivity(intent5);

在配置文件中:

<intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                <data
                    android:host="www.baidu.com"
                    android:mimeType="text/html"
                    android:scheme="http" />
            </intent-filter>

6.Extras属性


            //跳转页面时的数据存储
//                Intent intent = new Intent(this,MainActivityB.class);

//                Bundle bundle = new Bundle();
//                String s = et_text.getText().toString();
//                bundle.putString("string",s);
//                //把Bundle存入Intent
//                intent.putExtra("data",bundle);

//                startActivity(intent);

7.Flag属性

            //Flag属性,常用的有4个
            //FLAG_ACTIVITY_CLEAR_TOP
            //FLAG_ACTIVITY_NEW_TASK
            //FLAG_ACTIVITY_NO_HISTORY
            //FLAG_ACTIVITY_SINGLE_TOP
                Intent intent7 = new Intent(this,Main9Activity.class);
                intent7.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent7);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值