Intent的使用

Intent及其使用方法

一、Intent介绍

Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动 作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的 交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。

二、Intent的作用及其使用场合

Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯。Intent主要是用来启动其他的 activity 或者service,所以可以将intent理解成activity之间的粘合剂。
其使用场合主要分为以下三种:

  • 启动一个Activity
    (1) Activity.startActivity(Intent intent);  //启动一个Activity
    (2) Activity.startActivityForResult(Intent intent, int requestCode);  //启动一个带请求码的Activity,当该Activity结束时将回调原Activity的onActivityResult()方法,并返回一个结果码。
  • 启动一个Service
    (1) Context.startService(Intent service);

    (2)Context.bindService(Intent service, ServiceConnection conn, int flags);

  • 启动一个Broadcast
    (1)sendBroadcast(Intent intent);
        sendBroadcastAsUser(Intent intent, UserHandle user);

    (2) sendStickyBroadcast(Intent intent);
       sendStickyBroadcastAsUser(Intent intent, UserHandle user);

    (3) sendOrderedBroadcast(Intent intent, String receiverPermission);
         sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission,
    BroadcastReceiver resultReceiver,Handler scheduler, int initialCode, String initialData, Bundle initialExtras);

    三、Intent的使用方法

  • 启动一个新的Activity
    通过实例化一个Intent对象,指定需启动的目标Activity:

Intent it1 = new Intent(this, Main2Activity.class);  
                startActivity(it1);  
  • Activity间传值
    直接传值:
Intent it2 = new Intent(this, Main2Activity.class);  
it2.putExtra("team", "地表最强战队");  
it2.putExtra("name", "周杰伦");  
startActivity(it2); 

接收:

Intent it_get = getIntent();  
team = it_get.getStringExtra("team");  
name = it_get.getStringExtra("name");  

捆绑传值,使用Bundle:

Intent it2 = new Intent(this, Main2Activity.class);  
Bundle bd = new Bundle();  
bd.putString("team", "地表最强战队");  
bd.putString("name", "周杰伦");  
it2.putExtras(bd);  
startActivity(it2);  

接收:

Intent it_get = getIntent();  
Bundle bd_get = it_get.getExtras();  
team2 = bd_get.getString("team");  
name2 = bd_get.getString("name"); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值