显示意图,一般情况下是用于,APP应用自身:组件(Activity,Service,...) 与 组件(Activity,Service,...) 的激活调用:

显示意图,是可以看得到,明确激活哪一个Activity

package liudeli.activity.intent;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View; import liudeli.activity.R; public class OneActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_one);
} public void startTwoActivity(View view) {
/**
* 显示意图激活的三种方式
*/
// 1.快捷方式激活
// Intent intent = new Intent(this, TwoActivity.class); // 2.面向组件激活,老外很喜欢用这种方式激活
/*Intent intent = new Intent();
ComponentName componentName = new ComponentName(this, TwoActivity.class);
intent.setComponent(componentName);*/ // 3.设置Class方式激活
/*Intent intent = new Intent();
intent.setClass(this, TwoActivity.class);*/ // 4.设置ClassName方式激活,传入完整包名+类名
Intent intent = new Intent();
intent.setClassName(this, "liudeli.activity.intent.TwoActivity"); startActivity(intent);
} @Override
protected void onDestroy() {
super.onDestroy();
}
}

activity_one.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="激活"
android:onClick="startTwoActivity"
/> </RelativeLayout>

隐式意图,隐式意图一般情况下用于,两个应用程序的:组件(Activity,Service,...) 与 组件(Activity,Service,...) 的激活调用:

OuterProject应用的MainActivity需要对外暴露(在AndroidManifest.xml 文件中 对Activity 配置 Intent-filter):

必须要有动作标识:wo.shi.outer.project.main.activity.action
必须要有一个缺省:<category android:name="android.intent.category.LAUNCHER" />
    <activity android:name=".MainActivity">

            <intent-filter>

                <action android:name="wo.shi.outer.project.main.activity.action" />

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

            </intent-filter>

        </activity>

我的应用的OneActivity去隐式意图激活,OuterProject应用的MainActivity

在这里为什么不需要设置:category android:name="android.intent.category.DEFAULT",因为在startActivity会自动添加
    /**
* 隐士意图去激活 OuterProject应用的Activity
*
/*
<intent-filter> <action android:name="wo.shi.outer.project.main.activity.action" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
*/
Intent intent = new Intent();
intent.setAction("wo.shi.outer.project.main.activity.action");
intent.setPackage("liudeli.outer");
// 在这里为什么不需要设置:category android:name="android.intent.category.DEFAULT",因为在startActivity会自动添加
startActivity(intent);

OuterProject应用的MainActivity

Intent-filter 参数增加:

     <!--
android:mimeType="aa/bb" 必须是 xxx/xxx 这种格式,否则安装应用的时候解析失败
android:scheme="mydata" 不需要 mydata:, 但是在激活的那边需要加:
-->
<activity android:name=".MainActivity"> <intent-filter> <action android:name="wo.shi.outer.project.main.activity.action" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="mydata" android:mimeType="aa/bb" /> </intent-filter> </activity>

我的应用的OneActivity去隐式意图激活

    /**
* 隐士意图去激活 OuterProject应用的Activity
*/
/*
<intent-filter> <action android:name="wo.shi.outer.project.main.activity.action" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="mydata" android:mimeType="aa/bb" /> </intent-filter>
*/
Intent intent = new Intent();
intent.setAction("wo.shi.outer.project.main.activity.action");
intent.setPackage("liudeli.outer"); // 注意⚠️:当有Data和Type的时候,这种方式不可用

Android-显示意图和隐式意图的更多相关文章

  1. Android学习记录(7)—Intent中显示意图和隐式意图的用法

    Intent(意图)主要是解决Android应用的各项组件之间的通讯. Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的 ...

  2. Android 显示意图和隐式意图的区别

    意图在android的应用开发中是很重要的,明白了意图的作用和使用后,对开发会有很大帮助.如果没有把意图搞懂,以后开发应用会感觉缺些什么.        意图的作用:        1.激活组件   ...

  3. 基础学习总结(八)--Intent中显示意图和隐式意图的用法

    Intent(意图)主要是解决Android应用的各项组件之间的通讯.Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组 ...

  4. Android的显示意图和隐式意图总结

    显示意图 简而言之: 通过指定特定Activity的包名和类名开启Activity 应用场景: 一般应用于本App内的activity间的跳转. XML配置信息: AndroidManifest.xm ...

  5. Android中显式意图和隐式意图的区别

    1.显式意图 可以直接通过名称开启指定的目标组件: 通过构造方法Intent(Context packageContext,class<?>cls)来实现. button_1 = (But ...

  6. Activity组件:(一)通过显式意图和隐式意图来实现Activity间的跳转

    一.通过显式意图来实现Activity间的跳转 显式意图是指在创建Intent对象时就指定接受者组件 /** * 下面是通过显式意图进行跳转,即明确写出要跳转到SecondActivity.class ...

  7. Activity组件(二):通过显式意图和隐式意图来跳转至第三方应用

    一.显式意图来跳转到第三方应用 /** * 这个方法会在点击按钮的时候执行 * @param view */ public void skip2Browser(View view){ Log.d(TA ...

  8. android intent 隐式意图和显示意图(activity跳转)

    android中的意图有显示意图和隐式意图两种, 显示意图要求必须知道被激活组件的包和class 隐式意图只需要知道跳转activity的动作和数据,就可以激活对应的组件 A 主activity  B ...

  9. 无废话Android之smartimageview使用、android多线程下载、显式意图激活另外一个activity,检查网络是否可用定位到网络的位置、隐式意图激活另外一个activity、隐式意图的配置,自定义隐式意图、在不同activity之间数据传递(5)

    1.smartimageview使用 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...

  10. Android学习笔记_17_Intent匹配规则(隐式意图)

    Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行 ...

随机推荐

  1. FireDAC 接占线导致另一个 hstmt DataSnap

    [FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt 同样的程序,在2台win10 正常,1台win10 报连 ...

  2. 跟我学算法-pca(降维)

    pca是一种黑箱子式的降维方式,通过映射,希望投影后的数据尽可能的分散, 因此要保证映射后的方差尽可能大,下一个映射的方向与当前映射方向正交 pca的步骤: 第一步: 首先要对当前数据(去均值)求协方 ...

  3. Linux 环境下wordpress后台安装主题及插件需要FTP帐号怎么办?

    vi httpd.conf 查看user是哪个用户  我的是daemon 然后执行 chown daemon:daemon -R /data/wordpress /data/wordpress 是我的 ...

  4. Cross-Browser, Event-based, Element Resize Detection(转)

    DOM Elements! Y U No Resize Event? During your coding adventures, you may have run into occasions wh ...

  5. EF CodeFirst简单实例

    运行环境:VS2012,添加的EntityFramework为6.0.2 版本不用太关心,只要知道原理就行了: 基本代码就这几行: namespace ConsoleApplication1 {    ...

  6. swarmkit

    SwarmKit是用于在任何规模上编排分布式系统的工具包. 它包括节点发现的原语,基于raft的共识,任务调度等. 其主要优点是: 分布式:SwarmKit使用raft共识算法来协调,不依赖单一故障点 ...

  7. Kafka总结的一张图

  8. 【BZOJ2780】Sevenk Love Oimaster【广义后缀自动机】

    题意 给出你n个字符串和q个查询,每个查询给出一个字符串s,对于每个查询你都要输出这个字符串s在上面多少个字符串中出现过. 分析 广义后缀自动机的裸题.建好SAM以后再跑一遍得到每个状态的ocu和la ...

  9. 关于新建XIB去关联控制器,报错- the view outlet was not set

    凡事必勤,切勿眼高手低.这是我对于自己惰性的又一次的自我认识与批评.以前遇见而又解决的问题,当时没有记录,以为都是小CASE,直到积累了广泛的问题和技能,遇见了相同的问题,而又忘记了,又一次认识到笔记 ...

  10. Java中String类型详解

    这篇博客是我一直想总结的,这两天一直比较忙,先上传下照片吧,过后有时间再弄成正常的. 本文主要是对Java中String类型的总结,包括其在JVM中是怎么存储的...