Android-显示意图和隐式意图
显示意图,一般情况下是用于,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-显示意图和隐式意图的更多相关文章
- Android学习记录(7)—Intent中显示意图和隐式意图的用法
Intent(意图)主要是解决Android应用的各项组件之间的通讯. Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的 ...
- Android 显示意图和隐式意图的区别
意图在android的应用开发中是很重要的,明白了意图的作用和使用后,对开发会有很大帮助.如果没有把意图搞懂,以后开发应用会感觉缺些什么. 意图的作用: 1.激活组件 ...
- 基础学习总结(八)--Intent中显示意图和隐式意图的用法
Intent(意图)主要是解决Android应用的各项组件之间的通讯.Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组 ...
- Android的显示意图和隐式意图总结
显示意图 简而言之: 通过指定特定Activity的包名和类名开启Activity 应用场景: 一般应用于本App内的activity间的跳转. XML配置信息: AndroidManifest.xm ...
- Android中显式意图和隐式意图的区别
1.显式意图 可以直接通过名称开启指定的目标组件: 通过构造方法Intent(Context packageContext,class<?>cls)来实现. button_1 = (But ...
- Activity组件:(一)通过显式意图和隐式意图来实现Activity间的跳转
一.通过显式意图来实现Activity间的跳转 显式意图是指在创建Intent对象时就指定接受者组件 /** * 下面是通过显式意图进行跳转,即明确写出要跳转到SecondActivity.class ...
- Activity组件(二):通过显式意图和隐式意图来跳转至第三方应用
一.显式意图来跳转到第三方应用 /** * 这个方法会在点击按钮的时候执行 * @param view */ public void skip2Browser(View view){ Log.d(TA ...
- android intent 隐式意图和显示意图(activity跳转)
android中的意图有显示意图和隐式意图两种, 显示意图要求必须知道被激活组件的包和class 隐式意图只需要知道跳转activity的动作和数据,就可以激活对应的组件 A 主activity B ...
- 无废话Android之smartimageview使用、android多线程下载、显式意图激活另外一个activity,检查网络是否可用定位到网络的位置、隐式意图激活另外一个activity、隐式意图的配置,自定义隐式意图、在不同activity之间数据传递(5)
1.smartimageview使用 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...
- Android学习笔记_17_Intent匹配规则(隐式意图)
Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行 ...
随机推荐
- 四、jenkins+postman+newman环境搭建
前提: 搭建环境之前需要先理清楚各个环境的依赖关系,jenkins只支持windows命令行跟linux shell环境执行构建命令,而postman的测试脚本不能直接在命令行或shell环境执行,p ...
- python变量、引用、拷贝之间的关系
Python中一切皆为对象,不管是集合变量还是数值型or字符串型的变量都是一个引用,都指向对应内存空间中的对象. 简而言之: 变量直接赋值:新变量本身及其内部的元素都与原变量指向相同的内存空间,并且值 ...
- leetcode341
数据结构设计类题目,参考网上的代码: /** * // This is the interface that allows for creating nested lists. * // You sh ...
- 什么是事件代理?DOM2.0标准事件模型的三个阶段
体验更优排版请移步原文:http://blog.kwin.wang/programming/js-event-delegation.html 事件代理,又称事件委托(Delegation),就是将处理 ...
- cdoj914-方老师分身 I 【dijkstra】
http://acm.uestc.edu.cn/#/problem/show/914 方老师分身 I Time Limit: 3000/1000MS (Java/Others) Memory ...
- Struts2常量详解
-----------------siwuxie095 Struts2 常量详解 Struts2 的常量大多在默认的配置文件中已经配置好,但根据 用户需求和开发要求的不同,可能需要修改这些常量值,修改 ...
- ubuntu18 tensorflow faster_rcnn cpu训练自己数据集
(flappbird) luo@luo-ThinkPad-W540:tf-faster-rcnn$ ./experiments/scripts/train_faster_rcnn.sh 0 pasca ...
- Qt5.11参考文档
Qt5.11参考文档: http://www.bim-times.com/qt/Qt-5.11.1/qtdoc/index.html (来源于Qt官网)
- spring4-3-AOP-基于配置文件
1.建立业务类和切面类 2.在配置文件中配置bean 引入命名空间:
- springboot用于web开发
1.使用SpringBoot:1)创建SpringBoot应用,选中我们需要的模块:2)SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来3)自己编写业务代码 ...