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);
  • 相关阅读:
    openresty 使用 log_by_lua 发送日志到 syslog-ng
    uuid 了解
    基于openresty 的几个开发框架
    openresty 几个插件使用
    kong 了解
    openresty && hashids&& redis 生成短链接
    kong k8s 安装 以及可视化管理界面
    hashids 了解
    Apache Tez 了解
    Cascalog了解
  • 原文地址:https://www.cnblogs.com/dragon-aslan/p/4517339.html
Copyright © 2011-2022 走看看