- 浏览: 426905 次
- 性别:
- 来自: 深圳/湛江
文章分类
最新评论
-
wangyudong:
很多API doc生成工具生成doc需要重度依赖代码里加注解的 ...
[ios]利用xcode自动生成项目文档 -
tiger1819:
有源码么,想学习
[android]仿360状态,类流量监控桌面浮动显示 -
119568242:
借我一双翅膀 写道大哥,求指教啊?
IOS 开发,调用打电话,发短信,打开网址 -
借我一双翅膀:
大哥,求指教啊
IOS 开发,调用打电话,发短信,打开网址 -
li247276297:
楼主 是不是要加个权限?
[android]仿360状态,类流量监控桌面浮动显示
Android菜鸟日记3
intent
intent的概念:
intent是具有相关的数据负载的操作,intent 是你告诉android调用什么的一种操作。
个人理解:intent是用于在活动中调用其他活动的组件。在androidmainifest.xml中对活动注册好他的intent,然后就可以通过intent名来调用此方法。[个人认为intent就是方便活动调用其他活动的工具]
Intent实例:
[Android的NotePad例子的androidmainifest.xml片段]
<activity android:name="NotesList" android:label="@string/title_notes_list">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
//intent名
<action android:name="android.intent.action.EDIT" />
//intent名
<action android:name="android.intent.action.PICK" />
//intent名
<category android:name="android.intent.category.DEFAULT" />
//intent类别
<data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />
//intent MIME数据类型
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
</intent-filter>
</activity>
一、Intent注册
使用intent前需要在 androidmianifest.xml注册
Intent 注册是在活动注册内部的。
如上例。
注意:
Intent名称一般约定为<>.intent.action.活动名称。[action为活动集合[view之类的定义活动] 活动名称为继承activty的类名]
Android随带了一些预制程序。可以通过intent调用他们。
二、使用intent调用活动的方法
1. 显示操作启动。
描述:将需要调用的intent 名在实例化intent时传入。
Ex:Intent x = new Intent(“com.androidbook.intent.action.ShowBasicView”);
2. 使用一般操作加url 来启动。
描述:创建intent时只传入到 action类别的参数[“intent.ACTION_CALL”],然后靠传入uri去分辨具体活动。
Q:因为只传入到类别android如何知道调用此类别的哪个活动执行呢?
Answer:
Android通过URI的性质。查看此URI询问注册在当前action当前类别的活动哪个可以处理,然后调用它。为此在androidmianifest.xml 活动中注册intent时。需要注册此intent接受的URI协议。
EX:
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<data android:scheme="http” />
//注册此intent接受的URI协议
</intent-filter>
3. 使用组件直接调用活动
描述:实例化intent时用无参方法然后再对实例化对象设置活动的完整类名。
设置调用活动的方法:
Intent.setComponent(ComponentName name)
Intent.setClassName(String 包名,String 完整类名);
Intent.setClassName(Context context,String classNameInThatContext)
Setclass(Context context,Class classObjectInthatContext)
PS: ComponentName 是将包名和类名包装在一起的
New ComponentName(“com.android.contacts”,”com.android.contacts.xxxxx”);
Ex:使用组件直接调用活动
Intent xx= new intent();//先用无参构造方法。
xx. setComponent(New ComponentName(“com.android.contacts”,”com.android.contacts.xxxxx”))//然后设置调用的方法。
startActivity(xx);
三、使用extra信息
描述:通过extra可以向intent组将提供更多的信息。Extra以键值的形式表示。
键名称应该以包名称开头,值任意数据类型或者对象,只要他实现了android.os.Parcelable
Extra信息使用Android类android.os.bundle表示。
Intent取出extra
Intent.getExtras();//返回intent的extras 为bundle对象
Intent放入extra
Intent.putExtra(bundle xx);
或
Intent.putExtra(键,值);
注意:
Putextra传入数据不是传入引用,是复制进去。所以对传入后的数据修改是无法修改到出入extra内部的数据。
四、组件设计人员的最佳实践
Intent的设计模式:
Contacts.intent;
Contacts.intent.Insert;//内部类
Contacts.intent.UI;//内部类
顶级类 cantact.Intents定义了contacts应用程序将响应的主要intent,以及应用程序在运行过程发生的事件。[定义一些字符串 内容是contacts应用程序需要调用的intents名称]
Ex:
public final class Contacts$Intents
{
……
public static final String EXTRA_CREATE_DESCRIPTION = "com.android.contacts.action.CREATE_DESCRIPTION";
……
public Contacts$Intents()
{
throw new RuntimeException("Stub!");
}
}
嵌套类 Contacts.intent.Insert定义了支持的intent和其他常量的插入操作。[也是定义一些字符串 内容为需要调用的intent名称]
public final class Contacts$Intents$Insert
{
public static final String ACTION = "android.intent.action.INSERT";
public static final String FULL_MODE = "full_mode";
public static final String NAME = "name";
public static final String PHONETIC_NAME = "phonetic_name";
public static final String COMPANY = "company";
public static final String JOB_TITLE = "job_title";
public static final String NOTES = "notes";
public static final String PHONE = "phone";
public static final String PHONE_TYPE = "phone_type";
public static final String PHONE_ISPRIMARY = "phone_isprimary";
public static final String SECONDARY_PHONE = "secondary_phone";
public static final String SECONDARY_PHONE_TYPE = "secondary_phone_type";
public static final String TERTIARY_PHONE = "tertiary_phone";
public static final String TERTIARY_PHONE_TYPE = "tertiary_phone_type";
public static final String EMAIL = "email";
public static final String EMAIL_TYPE = "email_type";
public static final String EMAIL_ISPRIMARY = "email_isprimary";
public static final String SECONDARY_EMAIL = "secondary_email";
public static final String SECONDARY_EMAIL_TYPE = "secondary_email_type";
public static final String TERTIARY_EMAIL = "tertiary_email";
public static final String TERTIARY_EMAIL_TYPE = "tertiary_email_type";
public static final String POSTAL = "postal";
public static final String POSTAL_TYPE = "postal_type";
public static final String POSTAL_ISPRIMARY = "postal_isprimary";
public static final String IM_HANDLE = "im_handle";
public static final String IM_PROTOCOL = "im_protocol";
public static final String IM_ISPRIMARY = "im_isprimary";
public Contacts$Intents$Insert()
{
throw new RuntimeException("Stub!");
}
}
嵌套类 : Contacts.intent.UI 定义一些调用UI的方式。还包含了他们所需要的extra信息。
[也就是说定义的字符串 内容是一些调用ui的intent和这些intent需要用到得extra的键名(简单的说就是字符串存UI intent和这些UI intent需要用到的extra键名,这样用到intent时同时可以去除extra内容给intent用)]
package android.provider;
@Deprecated
public final class Contacts$Intents$UI
{
public static final String LIST_DEFAULT = "com.android.contacts.action.LIST_DEFAULT";
public static final String LIST_GROUP_ACTION = "com.android.contacts.action.LIST_GROUP";
public static final String GROUP_NAME_EXTRA_KEY = "com.android.contacts.extra.GROUP";
public static final String LIST_ALL_CONTACTS_ACTION = "com.android.contacts.action.LIST_ALL_CONTACTS";
public static final String LIST_CONTACTS_WITH_PHONES_ACTION = "com.android.contacts.action.LIST_CONTACTS_WITH_PHONES";
public static final String LIST_STARRED_ACTION = "com.android.contacts.action.LIST_STARRED";
public static final String LIST_FREQUENT_ACTION = "com.android.contacts.action.LIST_FREQUENT";
public static final String LIST_STREQUENT_ACTION = "com.android.contacts.action.LIST_STREQUENT";
public static final String TITLE_EXTRA_KEY = "com.android.contacts.extra.TITLE_EXTRA";
public static final String FILTER_CONTACTS_ACTION = "com.android.contacts.action.FILTER_CONTACTS";
public static final String FILTER_TEXT_EXTRA_KEY = "com.android.contacts.extra.FILTER_TEXT";
public Contacts$Intents$UI()
{
throw new RuntimeException("Stub!");
}
}
在设计ContentProvider和对它们进行操作的活动时,用到此模式,在接口或类中定义intent常量使intent明确.[也就是说在资源包装器中设置好资源包装器需要调用的intent]
五、intent类别
描述:在注册时可以设置intent类别
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<data android:scheme="http” />
//注册此intent接受的URI协议
<category android:name="类别" />
//注册此intent类别
</intent-filter>
通过PacKageManager对象可以获得与某intent匹配的活动。
Intent mainIntent = new Intent(intent.xx,null);// intent.xx活动集合
mainIntent.addCategory(intent.类别c);//定义类别
PacKageManager pm = getPackageManager();
List<ResolverInfo> list=pm.queryIntentActivities(mainIntent,0);
上面代码可以获得所有在xx活动种类下的intent且类别是类别C的intent集合list.
即在定义的intent的活动集合下寻找类别是x[自己定义的]intent
六、intent解析组件规则
名称->特性->数据->类别;
如果名称只对应一个组件则执行,否则进入特性。
如果特性下只有一个组件则执行,如果有多个则提供活动选择器。
如果没有特写设置,则进入数据,根据uri查看数据选择可以执行此uri的组件。
如果没有设置特性,和数据则进入类别,android挑选与类别匹配的活动。
七、startActivity()与starActivityForResult()
前者无返回,后者有返回
starActivityForResult(intent x,int requestCode);
使用starActivityForResult是会调用onActivityResult(3参数)方法
八、GET_CONTENT操作
通过设置传入的intent的MIME类别来获得一个特定的MIME类型项。
在注册时需要对intent设置它能具有的MIME类别。
<intent-filter android:label="@string/resolve_edit">
<action android:name="android.intent.action.VIEW" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
//MIME类别
</intent-filter>
2011-7-1
poolo
intent
intent的概念:
intent是具有相关的数据负载的操作,intent 是你告诉android调用什么的一种操作。
个人理解:intent是用于在活动中调用其他活动的组件。在androidmainifest.xml中对活动注册好他的intent,然后就可以通过intent名来调用此方法。[个人认为intent就是方便活动调用其他活动的工具]
Intent实例:
[Android的NotePad例子的androidmainifest.xml片段]
<activity android:name="NotesList" android:label="@string/title_notes_list">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
//intent名
<action android:name="android.intent.action.EDIT" />
//intent名
<action android:name="android.intent.action.PICK" />
//intent名
<category android:name="android.intent.category.DEFAULT" />
//intent类别
<data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />
//intent MIME数据类型
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
</intent-filter>
</activity>
一、Intent注册
使用intent前需要在 androidmianifest.xml注册
Intent 注册是在活动注册内部的。
如上例。
注意:
Intent名称一般约定为<>.intent.action.活动名称。[action为活动集合[view之类的定义活动] 活动名称为继承activty的类名]
Android随带了一些预制程序。可以通过intent调用他们。
二、使用intent调用活动的方法
1. 显示操作启动。
描述:将需要调用的intent 名在实例化intent时传入。
Ex:Intent x = new Intent(“com.androidbook.intent.action.ShowBasicView”);
2. 使用一般操作加url 来启动。
描述:创建intent时只传入到 action类别的参数[“intent.ACTION_CALL”],然后靠传入uri去分辨具体活动。
Q:因为只传入到类别android如何知道调用此类别的哪个活动执行呢?
Answer:
Android通过URI的性质。查看此URI询问注册在当前action当前类别的活动哪个可以处理,然后调用它。为此在androidmianifest.xml 活动中注册intent时。需要注册此intent接受的URI协议。
EX:
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<data android:scheme="http” />
//注册此intent接受的URI协议
</intent-filter>
3. 使用组件直接调用活动
描述:实例化intent时用无参方法然后再对实例化对象设置活动的完整类名。
设置调用活动的方法:
Intent.setComponent(ComponentName name)
Intent.setClassName(String 包名,String 完整类名);
Intent.setClassName(Context context,String classNameInThatContext)
Setclass(Context context,Class classObjectInthatContext)
PS: ComponentName 是将包名和类名包装在一起的
New ComponentName(“com.android.contacts”,”com.android.contacts.xxxxx”);
Ex:使用组件直接调用活动
Intent xx= new intent();//先用无参构造方法。
xx. setComponent(New ComponentName(“com.android.contacts”,”com.android.contacts.xxxxx”))//然后设置调用的方法。
startActivity(xx);
三、使用extra信息
描述:通过extra可以向intent组将提供更多的信息。Extra以键值的形式表示。
键名称应该以包名称开头,值任意数据类型或者对象,只要他实现了android.os.Parcelable
Extra信息使用Android类android.os.bundle表示。
Intent取出extra
Intent.getExtras();//返回intent的extras 为bundle对象
Intent放入extra
Intent.putExtra(bundle xx);
或
Intent.putExtra(键,值);
注意:
Putextra传入数据不是传入引用,是复制进去。所以对传入后的数据修改是无法修改到出入extra内部的数据。
四、组件设计人员的最佳实践
Intent的设计模式:
Contacts.intent;
Contacts.intent.Insert;//内部类
Contacts.intent.UI;//内部类
顶级类 cantact.Intents定义了contacts应用程序将响应的主要intent,以及应用程序在运行过程发生的事件。[定义一些字符串 内容是contacts应用程序需要调用的intents名称]
Ex:
public final class Contacts$Intents
{
……
public static final String EXTRA_CREATE_DESCRIPTION = "com.android.contacts.action.CREATE_DESCRIPTION";
……
public Contacts$Intents()
{
throw new RuntimeException("Stub!");
}
}
嵌套类 Contacts.intent.Insert定义了支持的intent和其他常量的插入操作。[也是定义一些字符串 内容为需要调用的intent名称]
public final class Contacts$Intents$Insert
{
public static final String ACTION = "android.intent.action.INSERT";
public static final String FULL_MODE = "full_mode";
public static final String NAME = "name";
public static final String PHONETIC_NAME = "phonetic_name";
public static final String COMPANY = "company";
public static final String JOB_TITLE = "job_title";
public static final String NOTES = "notes";
public static final String PHONE = "phone";
public static final String PHONE_TYPE = "phone_type";
public static final String PHONE_ISPRIMARY = "phone_isprimary";
public static final String SECONDARY_PHONE = "secondary_phone";
public static final String SECONDARY_PHONE_TYPE = "secondary_phone_type";
public static final String TERTIARY_PHONE = "tertiary_phone";
public static final String TERTIARY_PHONE_TYPE = "tertiary_phone_type";
public static final String EMAIL = "email";
public static final String EMAIL_TYPE = "email_type";
public static final String EMAIL_ISPRIMARY = "email_isprimary";
public static final String SECONDARY_EMAIL = "secondary_email";
public static final String SECONDARY_EMAIL_TYPE = "secondary_email_type";
public static final String TERTIARY_EMAIL = "tertiary_email";
public static final String TERTIARY_EMAIL_TYPE = "tertiary_email_type";
public static final String POSTAL = "postal";
public static final String POSTAL_TYPE = "postal_type";
public static final String POSTAL_ISPRIMARY = "postal_isprimary";
public static final String IM_HANDLE = "im_handle";
public static final String IM_PROTOCOL = "im_protocol";
public static final String IM_ISPRIMARY = "im_isprimary";
public Contacts$Intents$Insert()
{
throw new RuntimeException("Stub!");
}
}
嵌套类 : Contacts.intent.UI 定义一些调用UI的方式。还包含了他们所需要的extra信息。
[也就是说定义的字符串 内容是一些调用ui的intent和这些intent需要用到得extra的键名(简单的说就是字符串存UI intent和这些UI intent需要用到的extra键名,这样用到intent时同时可以去除extra内容给intent用)]
package android.provider;
@Deprecated
public final class Contacts$Intents$UI
{
public static final String LIST_DEFAULT = "com.android.contacts.action.LIST_DEFAULT";
public static final String LIST_GROUP_ACTION = "com.android.contacts.action.LIST_GROUP";
public static final String GROUP_NAME_EXTRA_KEY = "com.android.contacts.extra.GROUP";
public static final String LIST_ALL_CONTACTS_ACTION = "com.android.contacts.action.LIST_ALL_CONTACTS";
public static final String LIST_CONTACTS_WITH_PHONES_ACTION = "com.android.contacts.action.LIST_CONTACTS_WITH_PHONES";
public static final String LIST_STARRED_ACTION = "com.android.contacts.action.LIST_STARRED";
public static final String LIST_FREQUENT_ACTION = "com.android.contacts.action.LIST_FREQUENT";
public static final String LIST_STREQUENT_ACTION = "com.android.contacts.action.LIST_STREQUENT";
public static final String TITLE_EXTRA_KEY = "com.android.contacts.extra.TITLE_EXTRA";
public static final String FILTER_CONTACTS_ACTION = "com.android.contacts.action.FILTER_CONTACTS";
public static final String FILTER_TEXT_EXTRA_KEY = "com.android.contacts.extra.FILTER_TEXT";
public Contacts$Intents$UI()
{
throw new RuntimeException("Stub!");
}
}
在设计ContentProvider和对它们进行操作的活动时,用到此模式,在接口或类中定义intent常量使intent明确.[也就是说在资源包装器中设置好资源包装器需要调用的intent]
五、intent类别
描述:在注册时可以设置intent类别
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<data android:scheme="http” />
//注册此intent接受的URI协议
<category android:name="类别" />
//注册此intent类别
</intent-filter>
通过PacKageManager对象可以获得与某intent匹配的活动。
Intent mainIntent = new Intent(intent.xx,null);// intent.xx活动集合
mainIntent.addCategory(intent.类别c);//定义类别
PacKageManager pm = getPackageManager();
List<ResolverInfo> list=pm.queryIntentActivities(mainIntent,0);
上面代码可以获得所有在xx活动种类下的intent且类别是类别C的intent集合list.
即在定义的intent的活动集合下寻找类别是x[自己定义的]intent
六、intent解析组件规则
名称->特性->数据->类别;
如果名称只对应一个组件则执行,否则进入特性。
如果特性下只有一个组件则执行,如果有多个则提供活动选择器。
如果没有特写设置,则进入数据,根据uri查看数据选择可以执行此uri的组件。
如果没有设置特性,和数据则进入类别,android挑选与类别匹配的活动。
七、startActivity()与starActivityForResult()
前者无返回,后者有返回
starActivityForResult(intent x,int requestCode);
使用starActivityForResult是会调用onActivityResult(3参数)方法
八、GET_CONTENT操作
通过设置传入的intent的MIME类别来获得一个特定的MIME类型项。
在注册时需要对intent设置它能具有的MIME类别。
<intent-filter android:label="@string/resolve_edit">
<action android:name="android.intent.action.VIEW" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
//MIME类别
</intent-filter>
2011-7-1
poolo
发表评论
-
[android]使用 Matrix 的随触摸旋转的ImageView
2013-02-22 01:58 7923使用 Matrix 的随触摸旋转的ImageView 突 ... -
[android]动态改变按钮背景状态 StateListDrawable
2012-10-29 10:52 1472动态改变按钮背景状态 很少用到 上次和六哥聊到。 ... -
[android]ViewPage上无法通过onKeyDown()获得按钮事件
2012-08-20 04:53 1365系统无法监听到遥控器在VewPage上的按钮事件,如需 ... -
[android]待解决 lisTview 的onItemSelected 监听事件焦点的问题。
2012-08-18 21:18 2176今天遇到个问题 到目前为止 一直不理解为什么 大概描述下布局 ... -
[android]layout_weight 在layout_width 为fill_parent 与wrap_content 时的不同含义
2012-08-12 12:52 1270转自:http://hi.baidu.com/l ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 4031研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 3研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 0研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]Activity切换动画
2012-08-10 12:23 1478今天准备比赛的时候 遇到了这个问题。 查了些资料 ... -
android中ADT版本问题:无故报 java.lang.NoClassDefFoundError
2012-07-31 22:08 1792今天修改一个老项目的时候,发现在所有配置正确的情况下,代目无任 ... -
[android]仿360状态,类流量监控桌面浮动显示
2012-05-27 22:03 6031前两天看到部分音频播放器可以实现在桌面上显示歌词,360那个浮 ... -
[转]android开发问题记录 "founderapp"
2012-02-08 10:48 1071这段时间,由于某种原因,一直在做android手机开发, ... -
关于weight
2012-02-05 21:20 843layout_weight=1后,除了其它的控件之外剩 ... -
判断SD卡是否存在
2012-02-02 17:54 873android.os.Environment.getEx ... -
[转]Android文件管理器介绍
2012-02-02 16:50 3081转自:http://www.linuxidc.com/L ... -
[转]Android文件管理器介绍
2012-02-02 16:49 5转自:http://www.linuxidc.com/L ... -
[转]android 几何图形的绘制
2012-02-01 16:06 2192转自:http://byandby.iteye.c ... -
Android菜鸟日记32-游戏中的碰撞
2012-01-11 23:09 1754Android菜鸟日记 32-游戏中的碰撞 一、 ... -
Android菜鸟日记31-selector 中使用 shape
2012-01-11 23:05 1613Android菜鸟日记 31- ... -
Android菜鸟日记30-View与SurfaceView
2012-01-11 22:45 949Android菜鸟日记 30 View与Surfa ...
相关推荐
3. **Intent的主要属性** - **Action**:Intent的动作标识,如`ACTION_VIEW`, `ACTION_CALL`等,用于描述Intent要执行的操作。 - **Data**:Intent的数据URI,用于携带数据,可以是文件路径、网络URL等。 - **...
3. **Intent的分类** - 显式Intent: 直接指定目标组件,适用于在同一应用内的组件间通信。 - 隐式Intent: 不指定目标组件,而是通过动作和数据来寻找能处理该Intent的组件。这种方式可以跨应用通信,增加了系统的...
【Android开发教程之Intent详细讲解】 Intent在Android开发中扮演着至关重要的角色,它是四大组件(Activity、Service、BroadcastReceiver、ContentProvider)间通信的主要桥梁。Intent不仅描述了一个操作的动作,...
3. **Category**:提供额外的信息,帮助系统确定哪些组件可以处理此Intent。例如,`CATEGORY_LAUNCHER`表示该组件可以在主屏幕启动器中显示。 4. **Extra**:附加数据,可以是键值对的形式,用于传递更具体的信息。...
android Intent例子源码android Intent例子源码android Intent例子源码android Intent例子源码android Intent例子源码android Intent例子源码
根据提供的文件信息,我们可以深入探讨如何在Android应用中创建不同类型的文件Intent,以便与其他应用程序共享或打开特定格式的文件。 ### 一、Android中的Intent机制简介 在Android开发中,`Intent`是一种消息...
Android 中使用 Intent 打开各种文件类型 Android 操作系统提供了 Intent 机制,允许应用程序之间进行交互和通信。Intent 是一个异步的消息机制,用于在应用程序之间请求或提供服务。通过使用 Intent,可以实现打开...
3. **Intent的创建** 创建Intent通常有两种方式: - `new Intent(Context context, Class<?> clazz)`:用于创建显式Intent,传入上下文和目标Activity或Service的Class对象。 - `new Intent()`:用于创建隐式...
【Android Intent 启动和关闭Activity】 在Android应用程序开发中,Intent是连接各个组件(如Activity、Service等)的关键桥梁,主要用于启动和关闭Activity。Intent不仅能够启动一个新的Activity,还能在Activity...
在Android开发中,Intent是一种非常重要的组件间通信(IPC)机制。Intent主要用于启动或与其它应用程序组件进行交互,如活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)以及内容提供者...
3. **Intent的主要属性**: - `Action`:字符串类型,表示要执行的操作,如`ACTION_VIEW`,`ACTION_CALL`等。 - `Data`:Uri对象,表示要操作的数据,可以是文件路径、网页URL等。 - `Type`:MIME类型,用于描述...
3. Example-3.1 - 这可能是示例代码或案例研究,展示了如何在实际开发中使用Intent。可能包括创建显式和隐式Intent的实例,以及如何处理Intent传递的数据。 总的来说,理解并熟练使用Android的Intent系统对于开发...
标题与描述均指向了“Android各组件详解——Intent”,这一主题深入探讨了Android开发中至关重要的Intent组件。本文将从多个角度解析Intent的功能、应用场景及其内部结构,为开发者提供全面的理解。 ### Intent概述...
3. **Intent解析过程**: 当系统接收到一个隐式Intent时,会遍历Manifest.xml文件中所有声明的Intent Filter,找到匹配Action、Data和Category的组件。匹配成功后,该组件就会被调用执行相应操作。 4. **启动...
3. **Intent Filter匹配过程** 当使用隐式Intent时,系统会遍历所有注册了Intent Filter的组件,通过匹配action、category、data等属性来找到最合适的响应者。组件的AndroidManifest.xml中定义的Intent Filter包含...
3. 注册IntentFilter:为IntentFilter添加对应的ACTION,如"android.intent.action.TIME_TICK"、"android.intent.action.SCREEN_ON"和"android.intent.action.BATTERY_CHANGED"。 4. 不再需要时,记得在合适的位置...
Android Intent 的 URI 及示例 Android 操作系统中,Intent 是一个非常重要的组件,它允许不同的应用程序之间进行通信和交互。在 Android 中,Intent 是一个消息对象,它可以用来请求其他应用程序执行某些操作。...
3. **Intent解析与匹配**: - 系统通过`PackageManager`服务和`IntentFilter`来解析和匹配Intent。IntentFilter是组件(如Activity)声明它可以处理的Intent类型。 - 当发送隐式Intent时,系统会遍历所有注册的...
在sendBroadcast,startActivity时,我们会用到Intent。 Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,可能...
在Android应用开发中,Intent是连接应用程序组件之间通信的关键机制,它用于启动其他组件或传递数据。本篇文章将深入探讨Intent的基本概念、类型、构造方法以及如何在Android中有效地使用Intent。 Intent是一种意图...