Intent简单介绍
Intent目前翻译为意图,所谓意图就是想做什么。是Android系统组件之间的通信的桥梁。其描述的基本内容可以分为:conponentName(组件名称)、Action(动作名称)、Data(数据)、Category(类别)、Extra(附加数据)和Log(标志位)六个部分。
1 、指定conponentName
指定组件名称的方式又叫显示调用,明确要调用的组件,直接调用组件名,调用方式如下
Intent goto = new Intent();
goto.setClass(OneActivity.this,Second.class);
OnActivity.this.startActivity(goto);
当然两个Activity必须在AndroidManifest.xml注册。
2 、指定Action
没有明确指出组件名,隐式调用,需要和Data,Catagory,Extra配合使用。这个隐式调用又分为静态调用和动态调用。
(一)静态隐式调用
这种调用在方式上面体现为必须将要调用的组件的IntentFilter在AndroidManifest.xml里面注册,并且至少需要一个<action>标签,没有则任何Intent都不匹配。
下面是Activity中的写法,目的是Activity传递数据给BroadcastReceiver
Intent sendIntent = new Intent("intent_1");//动作名称为action_1
sendIntent.putExtra("sendmsg","你好");//存储数据到Intent中,通过广播携带到目的组件中
MainActivity.this.sendBroadcast(sendIntent);//发送广播
广播内容
public class MyBroadCastReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context,Intent intent){Toast.makeText(context,intent.getExtra("sendmsg"),Toast.LENGTH_LONG).show();}
}
注册接收者,必须要,不然过滤器无法找到
<receiver android:name=".MyBroadCastReceiver"><intent-filter><action android:name="intent_1" /></intent-filter> </receiver>
同样的道理,在Activity和Activity之间通讯的时候,不过Activity在注册的时候要加一个标签
<intent-filter><action android:name="intent_2" /><category android:name="android.intent.category.DEFAULT" /> </intent-filter>
(二)动态隐式调用
也就是不在注册文件里面注册intentFilter而是需要调用的时候再注册。如下
IntentFilter myfilter = new IntentFilter();
MyBroadCast mybroad = new MyBroadCast();
myfilter.addAction("action_3");
registerReceiver(mybroad,myfilter); //动态注册
Intent intent = new Intent();
intent.putExtra("msg","哈哈");
intent.setAction("action_3");
Main.this.sendBroadcast(intent);
3、使用系统自带的ActionName
由于实在太多这里就不详解了,用法大致为:
Intent intent = new Intent(Intent.ACTION_DIAL);//显示电话拨号界面
this.startActivity(intent);
//打开浏览器并且指定网页Uri uri = Uri.parse("Intent intent = new Intent(Intent.ACTION_VIEW,uri);this.startActivity(intent);
以下是所有系统自带ActionName:
android.intent.action.ALL_APPS
android.intent.action.ANSWER
android.intent.action.ATTACH_DATA
android.intent.action.BUG_REPORT
android.intent.action.CALL
android.intent.action.CALL_BUTTON
android.intent.action.CHOOSER
android.intent.action.CREATE_LIVE_FOLDER
android.intent.action.CREATE_SHORTCUT
android.intent.action.DELETE
android.intent.action.DIAL
android.intent.action.EDIT
android.intent.action.GET_CONTENT
android.intent.action.INSERT
android.intent.action.INSERT_OR_EDIT
android.intent.action.MAIN
android.intent.action.MEDIA_SEARCH
android.intent.action.PICK
android.intent.action.PICK_ACTIVITY
android.intent.action.RINGTONE_PICKER
android.intent.action.RUN
android.intent.action.SEARCH
android.intent.action.SEARCH_LONG_PRESS
android.intent.action.SEND
android.intent.action.SENDTO
android.intent.action.SET_WALLPAPER
android.intent.action.SYNC
android.intent.action.SYSTEM_TUTORIAL
android.intent.action.VIEW
android.intent.action.VOICE_COMMAND
android.intent.action.WEB_SEARCH
android.net.wifi.PICK_WIFI_NETWORK
android.settings.AIRPLANE_MODE_SETTINGS
android.settings.APN_SETTINGS
android.settings.APPLICATION_DEVELOPMENT_SETTINGS
android.settings.APPLICATION_SETTINGS
android.settings.BLUETOOTH_SETTINGS
android.settings.DATA_ROAMING_SETTINGS
android.settings.DATE_SETTINGS
android.settings.DISPLAY_SETTINGS
android.settings.INPUT_METHOD_SETTINGS
android.settings.INTERNAL_STORAGE_SETTINGS
android.settings.LOCALE_SETTINGS
android.settings.LOCATION_SOURCE_SETTINGS
android.settings.MANAGE_APPLICATIONS_SETTINGS
android.settings.MEMORY_CARD_SETTINGS
android.settings.NETWORK_OPERATOR_SETTINGS
android.settings.QUICK_LAUNCH_SETTINGS
android.settings.SECURITY_SETTINGS
android.settings.SETTINGS
android.settings.SOUND_SETTINGS
android.settings.SYNC_SETTINGS
android.settings.USER_DICTIONARY_SETTINGS
android.settings.WIFI_IP_SETTINGS
android.settings.WIFI_SETTINGS
android.settings.WIRELESS_SETTINGS
转载于:https://blog.51cto.com/7790410/1548769
Intent简单介绍相关推荐
- Intent Flag介绍 intent.addFlags()
FLAG_ACTIVITY_CLEAR_TOP 如果设置,并且这个Activity已经在当前的Task中运行,因此,不再是重新启动一个这个Activity的实例,而是在这个Activity上方的所有A ...
- Android中PackageManager类的简单介绍
1.PackageManager这个类,表层意思是包管理者,既然可以管理包,那么包下的一些东西便可以获取,其中可以获取应用图标和应用名称以及包名. 通过下面一行代码实例化PackageManager类 ...
- 从零开始开发Android相机app(三)简单介绍图像滤镜功能
目前章节 1.从零开始安卓端相机功能开发(一)了解用什么去开发以及流程 2.从零开始安卓端相机功能开发(二)让我们来开发一个相机 3.从零开始开发Android相机app(三)简单介绍图像滤镜功能 文 ...
- EventBus简单介绍
EventBus简单介绍 EventBus简单介绍 EventBus作用 EventBus优缺点 EventBus使用步骤 EventBus的三要素(三个角色) Event Subscriber Pu ...
- Android AccountManager 账户同步管理简单介绍
Android AccountManager 账户同步管理简单介绍 文章目录 Android AccountManager 账户同步管理简单介绍 前言 AccountManager 简介 如何让自己的 ...
- GCM Google官方示例的简单介绍和使用
GCM Google官方示例的简单介绍和使用 准备工作 翻墙 先翻墙,翻不了墙一切都白搭-- Google账号 申请Google账号 进入Google开发管理台 创建工程(Google管理台上的Pro ...
- android 网络篇简单介绍
1 简介 本文简单介绍android 开发中常用的webview .url. volley. json解析等网络工具.由于篇幅问题,这里只做简单介绍并不做详解. 2 WebView的用法 2.1 简单 ...
- 遗传算法的简单介绍以及模式定理的简单证明
遗传算法 遗传算法(Genetic Algorithm,GA),最早是由美国的John holland在20世纪70年代提出.算法通过模拟达尔文生物进化论的自然选择以及遗传学机理的生物进化过程来搜 ...
- 2021年大数据ELK(十八):Beats 简单介绍和FileBeat工作原理
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Beats 简单介绍和FileBeat工作原理 一.Beats 二.FileB ...
- 2021年大数据ELK(十五):Elasticsearch SQL简单介绍
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Elasticsearch SQL简单介绍 一.SQL与Elasticsear ...
最新文章
- 用python画立体玫瑰花-Python 玫瑰花绘制
- C# ArrayList集合
- 2008年CCNA第三学期第一单元中文题目(2008-12-21 18:30:01
- 033-Unit 5 Standard I/O and Pipes
- 动态生成Repeater
- Vue项目中一些常见的文件名及作用
- 设置 Xcode 自动生成代码片段
- MySQL并发复制系列一:binlog组提交 (转载)
- 天地图专题一:加载天地图
- php隐藏表单提交表单提交表单_浅谈php提交form表单
- 4月份SCCM/ConfigMgr的5大看点
- 2021 年软件开发趋势方向
- cuda必须装在c盘吗_善待你的系统盘——系统盘(C盘)解决方案
- Quartz配置文件详解生产配置
- Gyro陀螺仪 > MPU 6000 vs ICM 20689
- 'i' format requires -2147483648 = number = 2147483647
- web前端学习之———互联网与HTML篇
- java socket 聊天室_java利用Socket实现聊天室功能实例
- 当您给别人身份证复印件时请你注意!
- 高考计算机会考等级划分标准,学考等级怎么划分标准2021