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来执行 ...
随机推荐
- 14_java之变量|参数|返回值|修饰符
01java中的文档注释和制作 * A: 在eclipse使用时,可以配合文档注释,导出对类的说明文档,从而供其 他人阅读学习与使用. 通过使用文档注释,将类或者方法进行注释用@简单标注基本信息.如@ ...
- python学习——练习题(9)
""" 题目:暂停一秒输出. 程序分析:使用 time 模块的 sleep() 函数. http://www.runoob.com/python/python-date- ...
- TabControl关闭选项卡
关闭TabControl选项卡: Private Sub TabControl_Main_CloseButtonClick(sender As Object, e As EventArgs) Hand ...
- ATL项目编译注册dll的时候报权限错误:error MSB8011: Failed to register output. Please try enabling Per-user Redirection or register the component from a command prompt with elevated permissions.
atl工程在vs2013编译的时候会在编译成功之后去使用 regsvr32 去注册 生成的 .dll 偶尔在编译的时候会遇到下面的错误: error MSB8011: Failed to regist ...
- ssm框架整合之Spring4+SpringMVC+Mybaties3之配置文件如何配置及内容解释--可直接拷贝使用--不定时更改之2017/4/29
经测试,需注意以下几点: 1,controller的自动扫描不能放在applicationContext.xml中,要放在spring-mvc.xml中.同样是<context:componen ...
- javascript 模拟选择下拉框的某一个option元素的效果
需要在单元测试模拟它,百度谷歌了好久都没有.后来认真想想,还是找到办法了.因为我们手动交互某一行为,首先是让它的某些属性发生变化,其次是让它触发某事件.想明白这一点就简单了.让属性发生变化,当然是改动 ...
- Delphi三层开发小技巧:TClientDataSet的Delta妙用
Delphi三层开发小技巧:TClientDataSet的Delta妙用 转载 2014年10月13日 09:41:14 标签: 三层 / ClientDataSet 318 from :http:/ ...
- linux shell脚本编程笔记(二): 分支结构
1.if if command then commands fi if command then commands else commands fi if command1 then command ...
- Unity Remote 5 使用
从哪里下载,我是从应用商店里下载的 一. Android版 首先应该确保安装了最新的 Android SDK(这对于在设备上设置端口转发非常必要). 然后,使用 USB 连接线连接设备与电脑,并启动U ...
- oracle的约束隐式创建索引和先索引后约束的区别
oracle的约束隐式创建索引和先索引后约束的区别 两种情况:1.对于创建约束时隐式创建的索引,在做删除操作的时候: 9i~11g都会连带删除该索引 2.对于先创建索引,再创建约束(使用到此索引)这种 ...