客户端笔记——Intent

Intent

Intent,消息传递对象,用于android组件间通讯。
三大用处:启动Activity、启动Service、传递Broadcast

1. 启动Activity

例:AActivity启动BActivity

AActivity.java

    Intent intent = new Intent(this, BActivity.class);
    intent.putExtra("key_str", "value_str");
    // ...
    startActivity(intent);

BActivity.java

    Intent intent = getIntent();
    String values = getStringExtra("values");

2. 启动Service

待补充

3. 传递广播

Intent intent = new Intent();
intent.setAction(BROADCAST_ACTION);
sendBroadcast(intent);

 

Intent 分为 显式Intent 和 隐式Intent。

区别在于:
显式Intent在参数中显式指定要启动的组件(类名);隐式Intent不指定类名,而是声明
Action、Data、Category,让系统筛选出具体的组件。

显式Intent举例上面有,略。

隐式Intent举例:
在AndroidManifest.xml中为Activity设置intent-filter

设置BActivity能处理的intent(可以是多个)

<activity
    android:name="com.example.BActivity">
    <intent-filter>
            <action android:name="abcdefg"/>
            <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

在AActivity中才能通过action name找到BActivity。
AActivity.java

Intent intent = new Intent();
intent.setAction("abcdefg");
startActivity(intent);
//或者.....构造方法直接设置Action
Intent intent = new Intent("abcdefg");
startActivity(intent);

一些常用的内置Action常量(String类型)(Android Intent Action 大全

android.intent.action.DIAL  # 拨号
android.intent.action.MAIN  # 作为主入口点启动

隐式intent例2:

//调用系统浏览器打开网页
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);

通常action的命名规则是包名+Action名。

如果系统根据Action、Data、Catagory找到多个符合条件的Activity,系统就会让用户选择一个打开;
我们也可以开发一个DialApp设置action为android.intent.action.DIAL,这样别的程序调用拨号器时,就会弹出 系统 or DialApp 来选择。

如果没找到Activity,程序会抛出ActivityNotFoundException异常。可以在代码中try catch异常。

参考文章:显式和隐式Intent理解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值