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来执行 ...
随机推荐
- 关于Android的margin(当前视图与周围视图的距离)和padding(当前视图与内部内容的距离)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- 「小程序JAVA实战」springboot的后台搭建(30)
转自:https://idig8.com/2018/08/27/xiaochengxujavashizhanspringbootdehoutaidajian30/ 做了多年的开发,原来很多项目都是一个 ...
- cas-client单点登录客户端拦截请求和忽略/排除不需要拦截的请求URL的问题
http://blog.csdn.net/eguid_1/article/details/73611781
- 查看端口占用情况lsof,并关闭对应进程kill
lsof -n -P| grep ":<端口号>" | grep LISTEN #监听对应端口号的进程 lsof -i tcp:<端口号> #和对应端口号有 ...
- Java字符串与文件的互转操作
Java中有时候需要读取一个文本类的文件,将其转换为字符串,然后做进一步处理.Java中没有现成的API方法. 一.字符串转换为文件 /** * 将字符串写入指定文件(当指定的父路径中文件夹不存在 ...
- Linux运维基础入门(一)网络基础知识梳理01
一,计算机网络参考模型 1.1 OSI七层模型 1)物理层 主要功能是完成相邻节点之间原始比特流的传输.(网卡等) 物理层协议关心的典型问题是使用什么样的物理信号来表示数据1和0:持续的时间有多长:数 ...
- centos7 更新源 安装ifconfig
centos7最小化安装后,ifconfig是不可用的,可以使用ip addr或ip link查看网络信息. 更新源之前,先确定网络是否连通.我用的虚拟机,因为桥接受公司ip限制,换成了NAT模式,确 ...
- kali linux:wireshark不能被root用户启用的解决方案
启动wireshark后,报错: 该界面提示在init.lua文件中使用dofile函数禁用了使用超级用户运行wireshark.这是因为wireshark工具是使用Lua语言编写的,并且在kali ...
- Nginx 源码完全注释(10)ngx_radix_tree
ngx_radix_tree.h // 未被使用的节点 #define NGX_RADIX_NO_VALUE (uintptr_t) -1 typedef struct ngx_radix_node_ ...
- 129. Sum Root to Leaf Numbers(Tree; DFS)
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...