【Android】category的粗浅理解

我得理解 category 就相当于提供给框架的一个划分类型的的标识。这些标识在显式的Intent中并没有展示出多大价值(也可能是我学的不好)但是在隐式Intent时却体现了很大的作用。

其中系统提供的:

例如:

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

他就是提供给系统的标识,提示系统这是主页面。

 

<category android:name="android.intent.category.DEFAULT"></category>

这种那就是告诉系统这是普通页面。 

 

还有一些其他类型我并没有尝试过。

这里写图片描述

还有一些是可以自己编写:

例如:

        <activity android:name=".MainActivity2">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="gecer" />
            </intent-filter>
        </activity>

隐式Intent跳转

例如我想跳转到刚才写的.MainActivity2这个Activity页面中取

 var intent:Intent=Intent(Intent.ACTION_DEFAULT);
 intent.addCategory("gecer")
 startActivity(intent);

 

多页面赋值同一个category

这时候我引发联想,当我把带有gecer这个name的category给了MainActivity2时,那么我是否还能进行隐式Intent跳转。 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.k01">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.K01">
        <activity android:name=".MainActivity3">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="gecer" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity2">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="gecer" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

这时我还是执行原来的隐式Intent跳转 ,这时出现了这种打开方式的选择页面,如果选中其中的一个,就会跳转到上面配置的页面中去。

程序之间调用

于是我又产生了联想,这与平时微信接收一个文件,打开文件时让选择用什么应用打开有点类似,于是我就想到这种方式是不是能跨应用,于是新创建了一个项目k02,对原来的项目k01进行调用,发现还真的可以跨程序进行调用。

 

其他

Intent还有许多其他的用法(制定data中的scheme、host、port、path),这里就不在赘述,也可能会在后续问文章中提及。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值