Intent七大属性

Intent七大属性:
(1)ComponentName:组件名称(Intent想启动哪一个组件),显式启动Activity
三个构造器:
1)ComponentName cn = new ComponentName(content pkg,class cls);
第一个参数:上下文对象 (content pkg,class cls)
第二个参数:要跳转的类名.class
ComponentName cn = new ComponentName(MainActivity.this, B.class);

2)ComponentName cn = new ComponentName(content pkg,String cls);
第一个参数:上下文对象
第二个参数:要跳转的包名.类名
ComponentName cn = new ComponentName(B.this, “com.niu.intentdemo.C”);

3)ComponentName cn = new ComponentName(String pkg,String cls);
第一个参数:当前类包名
第二个参数: 要跳转的包名.类名
ComponentName cn = new ComponentName(“com.niu.intentdemo”, “com.niu.intentdemo.D”);
【注意:ComponentName构造器中的参数cls,必须要把包名也给加上,不能直接写类名】

使用步骤:在Activity启动之前

// 第一步:初始化ComponentName(有三种方式的构造参数)
ComponentName cn = new ComponentName(MainActivity.this, B.class);
// 第二步:将ComponentName设置到Intent中
    Intent intent = new Intent();
    intent.setComponent(cn);
// 第三步:startActivity
    startActivity(intent);

(2)Action:活动(叫服务员的活动)
ACTION_MAIN:(android.intent.action.MAIN)Android程序入口。每个Android应用必须且只能包含一个此类型的Action声明。【如果设置多个,则哪个在前,执行哪个】
ACTION_VIEW: (android.intent.action.VIEW) 显示指定数据。
ACTION_EDIT: (android.intent.action.EDIT) 编辑指定数据。
ACTION_DIAL:(android.intent.action.DIAL)。调用拨号盘显示要拨打的电话,但是电话没有拨打出去
ACTION_CALL:(android.intent.action.CALL)。调用拨号盘,直接将号码拨打出去。
ACTION_ANSWER: (android.intent.action.ANSWER) 接听来电。
ACTION_SEND: (android.intent.action.SEND) 向其他人发送数据(例如:彩信/email)。
ACTION_SENDTO: (android.intent.action.SENDTO) 向其他人发送短信。
ACTION_SEARCH: (android.intent.action.SEARCH) 执行搜索。
ACTION_GET_CONTENT: (android.intent.action.GET_CONTENT) 让用户选择数据,并返回所选数据

使用:(写在startActivity之前)

//(1)打开浏览器
    Intent intent = new Intent(); 

    intent.setAction(Intent.ACTION_VIEW);
    // 添加需要具体显示的指定数据            

intent.setData(Uri.parse("http://www.baidu.com"));
    startActivity(intent);
    //(2)打开系统相册
Intent intent = new Intent();           

intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivity(intent);
//(3)发送短信:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT,"要发送的短信内容");
startActivity(intent);
//(4)启动拨打电话 
// 启动拨号盘,电话直接拨打出去
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);               

intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
// 启动拨号盘,电话没有拨打出去
Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);

注意:拨打电话权限要获得权限,在清单文件中写
《uses-permission android:name=”android.permission.CALL_PHONE” />

(3)category:类别
(和ACTION一起使用)
CATEGORY_HOME:回到HOME页
CATEGORY_DEFAULT: (android.intent.category.DEFAULT) Android系统中默认的执行方式,按照普通Activity的执行方式执行。
CATEGORY_HOME: (android.intent.category.HOME) 设置该组件为Home Activity。
CATEGORY_PREFERENCE:(android.intent.category.PREFERENCE) 设置该组件为Preference。
CATEGORY_LAUNCHER: (android.intent.category.LAUNCHER) 设置该组件为在当前应用程序启动器中优先级最高的Activity,通常与入口ACTION_MAIN配合使用。
CATEGORY_BROWSABLE: (android.intent.category.BROWSABLE) 设置该组件可以使用浏览器启动
使用:

//Category---HOME-->回到home页
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    startActivity(intent);  

(4)Data:一般我们用它来指明数据
intent.setdata();//指明数据
(5)Extra:一般提供额外数据
intent.putExtra();
(6)Type:指定数据的类型
intent.setType(“image/*”);
格式:”image/*”—>获得手机中所有的图片
“audio/*”—>音乐
“video/*”—>视频
“text/plain”—>发送短信
“message/rfc822”—>发送邮件
Demo1:选择系统图片,显示。

Intent intent = new Intent();           

intent.setAction(Intent.ACTION_GET_CONTENT);
// 发送数据的ACTION

// 设置要发送数据的类型
intent.setType("image/*");
// 有返回值
startActivityForResult(intent, REQUEST_IMAGE);
            /*
             * 接收图片选择返回的数据
             **/
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_IMAGE && data != null) {
    Uri uri = data.getData();
    show_image.setImageURI(uri);
                }
            }

Demo2:发送邮件

intent.setAction(Intent.ACTION_SEND);
// 发送数据的ACTION
// 初始化收件人
    String[] to = new String[] { "12345@123.com", "12346@123.com", "12347@123.com" };
            // 指定收件人到intent中
    intent.putExtra(Intent.EXTRA_EMAIL, to);
            // 指定抄送人
    intent.putExtra(Intent.EXTRA_CC, "4567@123.com");
            // 指定主体
    intent.putExtra(Intent.EXTRA_SUBJECT, "今天加班通知");
            // 指定youjian内容
    intent.putExtra(Intent.EXTRA_TEXT, "亲爱的同时。。。");
            // 要设置发送数据的类型
            intent.setType("message/rfc822");
            startActivity(intent);  

(7)Flag:
FLAG_ACTIVITY_CLEAR_TOP:相当于singleTask的启动模式
FLAG_ACTIVITY_NO_HISTORY:使用这种Flag启动的Activity不入栈
FLAG_ACTIVITY_SINGLE_TOP:相当于singleTop的启动模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值