android中Intent的用法总结

Android中intent常用来启动一个Activity,启动service和发送广播等,同时还可以携带各种数据,以及根据所指定的ACTION的不同,来打开文件,选取文件等等,反正是用处特别大就是了。

  1. Intent主要分为两类:隐式Intent和显式Intent:
    1. 隐式Intent,通常不具体指定打开的类名,而是通过指定ACTION来指定要执行的动作类型,如Intent intent = new Intent(Intent.ACTION_VIEW)就指定打开能执行ACTION_VIEW操作的组件,这个组件可能在你的APP中,也可能是在别的APP中,如查看一张图片的Intent应该这样定义:
Intent intent = new Intent();
//action还可以通过set方法进行设置
intent.setAction(Intent.ACTION_VIEW);
//既然是查看图片,就要指定打开哪张图片,通过setData,传入图片的uri
intent.setData(imageUri);
//然后指定打开文件的类型,图片的话可用用image/*
intent.setType("image/*");//这两句也可以用intent.setDataAndType();来一句话搞定
//最后调用startActivity,系统就会根据条件找到具体能执行这个intent的activity
startActivity(intent);
//如果不确定手机中是否有activity能执行这一操作,还需要用intent.resoveActivity(getPakageManager()) != null;来进行判断,如果没有,直接startActivity程序会crash。

与隐式Intent对应的,需要在目标activity中指定intent-filter标签来指定接受的intent类型,例如:

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

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

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

                <category android:name="android.intent.category.DEFAULT"/>
                <data
                    android:mimeType="image/*" />
            </intent-filter>

第一个Intent是用来在启动器通过点击图标启动activity的intent-filter。
第二个则是和上面代码中intent对应的可以打开图片的activity需要指定的intent-filter
2. 显式Intent,直接指定了要打开的类名的Intent,这种intent通常用在应用内部,从一个activity启动另一个activity或service。如:
Intent intent = new Intent(MainActivity.this,SecondActivity.class);这个比较简单,不再多说。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值