博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 基础Intent与Intent Filter
阅读量:5162 次
发布时间:2019-06-13

本文共 1334 字,大约阅读时间需要 4 分钟。

 

Intent 设计的目标:

  • 启动四大组件
  • 高层次解耦

Intent用来干嘛?

启动Activity, Service, BroadcastReceiver

传递数据

 

为什么要用Intent?

封装“启动意图”

提供统一编程模型

避免耦合

 

1.1 使用Intent可以启动的系统组件

 

 

启动方法

 

Activity

startActivity(Intent intent)

   

startActivityForResult(Intent intent, int responseCode)

 

Service

ComponentName startService(Intent service)

   

boolean bindService(Intent service, ServiceConnection conn, int flag)

 

BroadcastReceiver

sendBroadcast(Intent intent)

   

sendBroadcast(Intent intent, String receiverPermission)

   

sendOrderBroadcast(Inent intent)

   

sendStickyBroadcast(Intent intent)

Broadcast发送完了,消息还好再等待一会

 

sendStickyOrderBroadcast(Intent intent….)

 

 

1.2 Intent的属性

1.2.1 Component 属性

Component属性其实就是一个ComponentName对象,用于指明要启动的组件类的包名,和类

ComponentName comp = new ComponetName(ThisActivity.this, TargetActivity.class);Intent intent = new Intent();intent.setComponent(comp);startActivity(intent);

其实我们可以用更简单的方法

Intent intent=new Intent(ThisActivity.this, TargetActivity.class);.....

1.2.2 Action、Category

代表要完成的一个抽象动作

显式意图,隐式意图

<intent-filter>节点下可以包含

0~N个<action/>元素

0~N个<category/>元素

0~1个<data />元素

系统中有名的ACTION:

ACTION_MAIN

ACTION_VIEW

ACTION_CALL直接给指定用户打电话

1.2.3  Data, Type与Intent Filter

指定了Data, 就无需再支持Type属性

Data 属性是一个Uri 的对象实例

content://com.android.contacts/contacts/1

 

1.2.4 Extra

长用于多个Action之间的数据交换, 是一个Bundle对象

转载于:https://www.cnblogs.com/vivid-stanley/archive/2012/09/04/2669781.html

你可能感兴趣的文章
类库间无项目引用时,在编译时拷贝DLL
查看>>
module 'socket' has no attribute的解决方案
查看>>
Java NIO vs. IO
查看>>
BIO、NIO、AIO通信机制
查看>>
STL priority_queue<> 用法 <转>
查看>>
POJ-3009 Curling 2.0 简单BFS
查看>>
vs 2010 快捷键
查看>>
ref用于类类型
查看>>
canvas
查看>>
Balanced Binary Tree
查看>>
java学习------环境安装与配置
查看>>
日期时间函数
查看>>
Testing from Eclipse with ADT 翻译
查看>>
五句话搞定JavaScript作用域(ES5)
查看>>
UVA1602
查看>>
清理系统垃圾代码 李德鹏
查看>>
$_SERVER 等超全局数组的用法 $_COOKIE $_GET $_SESSION
查看>>
20155308 加分题-mybash的实现(第五周)
查看>>
C#调用R语言
查看>>
nodeJs是什么
查看>>