zoukankan      html  css  js  c++  java
  • 隐式打开Activity——Intent设置(如何打开)和Intent-fileter配置(怎么能被打开)

    打开一个Activity的Intent设置和目标Activity的intent-filter配置是一一对应的。

    首先看一个Activity的intent-filter的配置:

            <activity
                android:name=".InexplicitConfigActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <!-- 设置接收动作,可以是系统标准动作,也可以是自定义动作,值皆为一个字符串 -->
                    <action android:name="android.intent.action.VIEW"/>
                    <!-- 设置接收意图范畴,一般使用系统给定的标准范畴,自定义的范畴无意义 -->
                    <category android:name="android.intent.category.DEFAULT"/>
                    <!-- 定义接收数据格式 -->
                    <data android:scheme="https"></data>
                    <data android:scheme="svn"></data>
                </intent-filter>
                
                <intent-filter>
                    <action android:name="customAction"/>
                    <category android:name="android.intent.category.DEFAULT"/>
                </intent-filter>
            </activity>

    该配置表明该Activity在两种情况下能打开(隐式意图,显式意图不讨论):

      1、使用系统标准动作android.intent.action.VIEW,默认范畴,且必须设置附加数据,数据的模式必须类似于“https://....”或“svn://...”;

      2、使用自定义动作customAction,默认范畴,可以不设置附加数据;

    对应的打开该Activity的代码如下:

    Intent intent = new Intent();
            
    intent.setAction(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("https://www.baidu.com"));
    intent.addCategory(Intent.CATEGORY_DEFAULT);
            
    startActivity(intent);
    Intent intent = new Intent();
            
    intent.setAction("customAction");
    intent.addCategory(Intent.CATEGORY_DEFAULT);
        
    startActivity(intent);
  • 相关阅读:
    Jenkins+gitlab自动化构建部署
    浅尝CI/CD,真香
    各种奇葩,我感觉我快窒息了,来吐吐槽...
    用SMART原则来创建一个好的OKR
    用OKR改变个人能力得不到明显提升的困境
    承诺型与愿景型,什么样的OKR适合你?
    OKR文化:关键成果必须具备的五个特点
    为什么不能完全用OKR替代KPI?
    OKR的激励方式应该注意什么?
    OKR如何与绩效考核并行?
  • 原文地址:https://www.cnblogs.com/dragon-aslan/p/4517339.html
Copyright © 2011-2022 走看看