Android Intent组件
来源:互联网 发布:淘宝的商业模式是什么 编辑:程序博客网 时间:2024/06/10 14:59
Intent的中文意思是“意图,目的”的意思,可以理解为不同组件之间通信的“媒介”或者“信使”。
目标组件一般要通过Intent来声明自己的条件,一般通过组件中的<intent-filter>元素来过滤。
Intent在由以下几个部分组成:动作(action),数据(data),分类(Category),类型(Type),组件(Component),和扩展信息(Extra)。
Intent在寻找目标组件的时候有两种方法:
第一,通过组件名称直接指定;
第二,通过Intent Filter过滤指定
Intent启动不同组件的方法
组件名称
方法名称
Activity
startActivity(Intent intent)
startActivityForResult(Intent intent,int requestCode)
Service
ComponentName startService(Intent service)
boolean bindService(Intent service,ServiceConnection conn,int flags)
Broadcasts
sendBroadcast(Intent intent)sendBroadcast(Intent intent,String receiverPermission)
sendOrderedBroadcast(Intent intent,String receiverPermission,BroadcastReceiver resultReceiver,Handler
scheduler,int initialCode,String initialData,Bundle initialExtras)
sendOrderedBroadcast(Intent intent,String receiverPermission)
sendStickyBroadcast(Intent intent)
sendStickyOrderedBroadcast(Intent intent,BroadcastReceiver resultReceiver,Handler scheduler,int initialCode,String initialData,Bundle initialExtras)
常见的Activity Action Intent常量
常量名称
常量值
意义
ACTION_MAIN
android.intent.action.MAIN
应用程序入口
ACTION_VIEW
android.intent.action.VIEW
显示数据给用户
ACTION_ATTACH_DATA
android.intent.action.ATTACH_DATA
指明附加信息给其他地方的一些数据
ACTION_EDIT
android.intent.action.EDIT
显示可编辑的数据
ACTION_PICK
android.intent.action.PICK
选择数据
ACTION_CHOOSER
android.intent.action.CHOOSER
显示一个Activity选择器
ACTION_GET_CONTENT
android.intent.action.GET_CONTENT
获得内容
ACTION_DIAL
android.intent.action.GET_CONTENT
显示打电话面板
ACITON_CALL
android.intent.action.DIAL
直接打电话
ACTION_SEND
android.intent.action.SEND
直接发短信
ACTION_SENDTO
android.intent.action.SENDTO
选择发短信
ACTION_ANSWER
android.intent.action.ANSWER
应答电话
ACTION_INSERT
android.intent.action.INSERT
插入数据
ACTION_DELETE
android.intent.action.DELETE
删除数据
ACTION_RUN
android.intent.action.RUN
运行数据
ACTION_SYNC
android.intent.action.SYNC
同步数据
ACTION_PICK_ACTIVITY
android.intent.action.PICK_ACTIVITY
选择Activity
ACTION_SEARCH
android.intent.action.SEARCH
搜索
ACTION_WEB_SEARCH
android.intent.action.WEB_SEARCH
Web搜索
ACTION_FACTORY_TEST
android.intent.action.FACTORY_TEST
工厂测试入口点
常见的BroadcastIntent Action常量
BroadcastIntent Action字符串常量
描述
ACTION_DATE_CHANGED系统日期被改变ACTION_TIME_TICK
系统时间每过一分钟发出的广播
ACTION_TIME_CHANGED
系统时间通过设置发生了变化
ACTION_TIMEZONE_CHANGED
时区改变
ACTION_BOOT_COMPLETED
系统启动完毕
ACTION_PACKAGE_ADDED
新的应用程序apk包安装完毕
ACTION_PACKAGE_CHANGED
现有应用程序apk包改变
ACTION_PACKAGE_REMOVED
现有应用程序apk包被删除
ACTION_PACKAGE_RESTARTED现有应用程序apk被重启ACTION_PACKAGE_DATA_CLEARED现有应用程序apk数据被清空ACTION_BATTERY_CHANGED电池电量改变ACTION_BATTERY_LOW电池电量低ACTION_POWER_CONNECTED系统连接电源ACTION_POWER_DISCONNECTED系统与电源断开ACTION_SHUTDOWN系统被关闭ACTION_UID_REMOVED
用户id被删除
Intent的Action和Data属性匹配
Action属性
Data属性
说明
ACTION_VIEW
content://contacts/people/1
显示id为1的联系人信息
ACTION_DIAL
content://contacts/people/1
将id为1的联系人电话号码显示在拨号界面中
ACITON_VIEW
tel:123
显示电话为123的联系人信息
ACTION_VIEW
http://www.google.com
在浏览器中浏览该网站
ACTION_VIEW
file://sdcard/mymusic.mp3
播放MP3
ACTION_VIEW
geo:39.2456,116.3523
显示地图
// Build the intentUri location = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California");Intent mapIntent = new Intent(Intent.ACTION_VIEW, location);// Verify it resolvesPackageManager packageManager = getPackageManager();List<ResolveInfo> activities = packageManager.queryIntentActivities(mapIntent, 0);boolean isIntentSafe = activities.size() > 0;// Start an activity if it's safeif (isIntentSafe) { startActivity(mapIntent);}第二段注释用来验证发起的应用是否存在。
Intent intent = new Intent(Intent.ACTION_SEND);...// Always use string resources for UI text.// This says something like "Share this photo with"String title = getResources().getString(R.string.chooser_title);// Create intent to show chooserIntent chooser = Intent.createChooser(intent, title);// Verify the intent will resolve to at least one activityif (intent.resolveActivity(getPackageManager()) != null) { startActivity(chooser);}这一段代码与上一段的区别在于,这段代码发起应用时会弹出一个选择框,让用户选择偏爱的应用,而且不能被记住。(上一段则可以被记住,下次启动时就默认启动记住的那个应用了)
常见的Category常量
Category字符串常量
描述
CATEGORY_BROWSABLE
目标Activity能通过在网页浏览器中点击链接而激活(比如,点击浏览器中的图片链接)
CATEGORY_GADGET
表示目标Activity可以被内嵌到其他Activity当中
CATEGORY_HOME
目标Activity是HOME Activity,即手机开机启动后显示的Activity,或按下HOME键后显示的Activity
CATEGORY_LAUNCHER
表示目标Activity是应用程序中最优先被执行的Activity
CATEGORY_PREFERENCE
表示目标Activity是一个偏爱设置的Activity
常见的Extra常量
Extra键值字符串常量
描述
EXTRA_BCC
装有邮件密送地址的字符串数组
EXTRA_CC
装有邮件抄送地址的字符串数组
EXTRA_EMAIL
装有邮件发送地址的字符串数组
EXTRA_INTENT
使用ACTION_PICK_ACTIVITY动作时装有Intent选项的键
EXTRA_KEY_EVENT
触发该Intent的案件的KeyEvent对象
EXTRA_PHONE_NUMBER
使用拨打电话相关的Action时,电话号码字符串的键,类型为String
EXTRA_SHORTCUT_ICON
使用ACTION_CREATE_SHORTCUT在HomeActivity创建快捷方式时,对快捷方式的描述信息。其中ICON和 ICON_RESOURCE描述的是快捷方式的图标,类型分别为Bitmap和ShortcutIconResource。INTENT描述的是快捷方式 相对应的Intent对象。NAME描述的是快捷方式的名字。
EXTRA_SHORTCUT_ICON_RESOURCE
EXTRA_SHORTCUT_INTENT
EXTRA_SHORTCUT_NAME
EXTRA_SUBJECT
描述信息主题的键
EXTRA_TEXT
使用ACTION_SEND动作时,用来描述要发送的文本信息,类型为CharSequence
EXTRA_TITLE
使用ACTION_CHOOSER动作时,描述对话框标题的键,类型为CharSequence
EXTRA_UID
使用ACTION_UID_REMOVED动作时,描述删除的用户id的键,类型为int
Android.telephony包中的类
类名
描述
CellLocation
表示设备位置的抽象类
PhoneNumberFormattingTextWather
监视一个TextView控件,如果有电话号码输入,则用formatNumber()方法处理电话号码
PhoneNumberUtils
包含各种处理电话号码字符串的使用工具
PhoneStateListener
监视手机中电话状态变化的监听类
ServiceState
包含电话状态和相关的服务信息
TelephonyManager
提供对手机中电话服务信息的访问
与短信服务相关的类主要在包android.telephony.gsm中
类名
描述
GsmCellLocation
表示GSM手机的基站位置
SmsManager
管理各种短信操作
SmsMessage
表示具体的短信
- android组件之Intent
- Android Intent组件使用
- Android组件之Intent
- Android Intent组件使用
- Android Intent组件使用
- Android Intent组件使用
- android组件-Intent
- Android Intent组件
- Android组件通信--Intent
- Android通信组件Intent
- Android Intent组件
- android intent 组件通信
- android Intent组件属性
- android:Intent组件
- Android中Intent组件详解
- android四大组件之intent
- Android中Intent组件详解 .
- Android---组件篇---Intent(意图)
- homework
- Android学习系列(一)初识安卓
- android_aliyun-oss
- 深入探究IBM AIX高级系统管理视频教程下载
- NPM--nodejs包管理
- Android Intent组件
- 蓝桥杯练习系统 ALGO-4 结点选择
- 第三周项目1-2
- AE 学习小结---toccontrol图层移动
- 路在何方
- 【JS】typeof原始类型 string:"string" number:"number" boolean:"boolean" undefined:"undefined" 除了null
- fzu2035
- android listview继承BaseAdapter,自定义的适配器,getView方法执行多组循环解决方式
- 使用python写糗事百科的爬虫