Android语言基础教程(99)Android应用核心Intent对象之动作(Action):Intent动作全解剖:原来Android应用的“社交牛逼症”是这样炼成的!

哎,各位码农小伙伴们,今天咱们来唠个硬核又风骚的知识点——Android里的Intent对象,特别是它的“动作”(Action)。别看这词儿听着像在拍武打片,它可是你家APP能在安卓江湖里混出名堂的“社交密码”!

先想象一下:你的APP是个宅男,整天缩在自家Activity里刷手机。突然想点个外卖,咋整?扯着嗓子喊“饿死了!”?那不现实。得用Intent这个“外卖小哥”,帮你把需求(比如“我要吃饭”)精准送达“美团”APP。这里的“我要吃饭”,就是Intent的Action——说白了,就是你想干啥的宣言书

一、Action是啥?安卓界的“社交暗号”

Action本质是个字符串(String),但可不是随便瞎写的!它像江湖黑话,系统内置了一套标准暗号,比如:

  • ACTION_VIEW:万能“瞅一眼”动作。搭配数据URI,能让你从“宅男”秒变“街溜子”——打开网页、看图片、地图定位,无所不瞅。
  • ACTION_SEND:八卦之魂“分享”。看到好玩的想分(xuan)享(yao)给基友?用它!文字、图片、文件,一键群发。
  • ACTION_DIAL:撩妹专用“打电话”。别看只是跳转拨号界面,那种“我准备call你了”的暧昧氛围拉满。
  • ACTION_PICK:海王选妃“挑照片”。从相册里翻牌子,优雅又省力。

关键来了:Action分两种社交模式——

  1. 显式Intent(Explicit):像给心仪对象发微信,直接标清楚“隔壁老王,今晚八点撸串”。精准高效,但缺乏灵活性。
  2. 隐式Intent(Implicit):像在朋友圈嚎一嗓子“求约饭!”。谁(哪个APP)响应随缘,可能美团、饿了么都蹦出来抢单。Action在这里就是你的朋友圈文案核心!
二、隐式Intent:Android界的“海王钓鱼术”

隐式Intent的骚,在于它只描述想做什么(Action),不指定谁来做。系统自动匹配能处理的APP,像海王撒网,愿者上钩。

这里必须祭出三大匹配要素:Action(动作)、Data(数据)、Category(类别)。比如你想“查看一个网页”:

  • Action设为ACTION_VIEW(动作:查看)
  • Data设为网页URI:https://m.example.com(数据:具体看啥)
  • 系统就会弹出浏览器、知乎、微信等所有声明能“VIEW”+“http”的APP等你翻牌。

但注意! 海王有风险,撒网需谨慎。如果没APP接盘,你的APP会直接崩(报ActivityNotFoundException)。稳妥起件,总得有个备胎:

// 先检测有没有APP能接盘
if (intent.resolveActivity(getPackageManager()) != null) {
    startActivity(intent);
} else {
    Toast.makeText(this, "装个浏览器吧爷!", Toast.LENGTH_SHORT).show();
}
三、实战代码:从“青铜”到“王者”的Action撩妹三部曲

案例1:直男式打电话(显式Intent)

// 直接呼叫10086(需申请CALL_PHONE权限)
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:10086"));
startActivity(callIntent);

注意ACTION_CALL是直接打,需要权限;怂点就用ACTION_DIAL,只跳转拨号界面不自动拨打。

案例2:海王式分享(隐式Intent)

// 发一段文字+图片,能打的APP都来!
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/*"); // 类型筛一波,只要能处理图片的APP
shareIntent.putExtra(Intent.EXTRA_TEXT, "快看这个段子笑死我了!");
shareIntent.putExtra(Intent.EXTRA_STREAM, uriOfImage);
// 关键:创建选择器,避免直接默认微信
Intent chooser = Intent.createChooser(shareIntent, "选个APP嘚瑟去吧");
startActivity(chooser);

效果:弹出选择框,微信、QQ、微博任君挑选,海王气质拉满。

案例3:自定义Action,让你的APP变成“社交中心”

你不仅能调用别人,还能让别的APP来调用你!在AndroidManifest.xml里声明:

<activity android:name=".MyCustomActivity">
    <intent-filter>
        <!-- 自定义Action名,要独特! -->
        <action android:name="com.example.myapp.SHOW_ROCKET" />
        <category android:name="android.intent.category.DEFAULT" />
        <!-- 限定只处理https链接 -->
        <data android:scheme="https" />
    </intent-filter>
</activity>

然后在代码里触发它:

// 其他APP(或自己)可以这样召唤你
Intent customIntent = new Intent("com.example.myapp.SHOW_ROCKET");
customIntent.setData(Uri.parse("https://m.example.com/launch"));
startActivity(customIntent);

从此,你的APP也能响应自定义暗号,跻身“社交名流”!

四、避坑指南:Action那些年踩过的雷
  1. Action名手滑打错:系统可不认识ACTION_VEW(少了个I),直接凉凉。
  2. Data类型忘设:想ACTION_SEND图片却没setType("image/*"),分享列表空空如也。
  3. 权限不够硬来:没申请权限就直接ACTION_CALL,分分钟被系统拍死。
  4. 没做备胎检测:隐式Intent直接start,遇上用户手机没装对应APP,当场崩溃。
五、结语:学好Action,让你的APP“C位出道”

Intent的Action,就像给你的APP装上了社交牛逼症开关。掌握它,你的应用就不再是孤岛,而是安卓生态链里的“社牛达人”——能调戏其他APP,也能被万千应用争相召唤。

记住:显式Intent是专一暖男,隐式Intent是风流海王。用哪个,取决于你想当哪种“网红APP”。(当然,代码别写bug,不然只能当“搞笑博主”了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值