// Setup the recipient in a String array
String[] mailto = {"noam.ha...@gmail.com"};
// Create a new Intent tosendmessages
Intent sendIntent = new Intent(Intent.ACTION_SEND);
//Write the body of theEmail
String emailBody = "You're password is: ";
// Add attributes to the intent
sendIntent.setType("text/plain"); //use this line for testing in the emulator
//sendIntent.setType("message/rfc822");
//use this line for testing on the real phone
sendIntent.putExtra(Intent.EXTRA_EMAIL, mailto);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Your Password");
sendIntent.putExtra(Intent.EXTRA_TEXT, emailBody);
以上这一段是从网上抄来的代码,其作用是调用系统默认的email客户端。然后自动形成Email,然后发送有用户确认,发送Email。整个发送Email的过程需要用户参与。并不是很自动化。
仔细分析一下,对于Intent则有了进一步的了解。在这整个过程中,我就是在做一件事情,那就是组装一个intent。而这个intent的目的是为了调用系统默认的activity。
那么问题就出来了,Intent和activity是什么关系?在android中扮演何种角色?以及他们如何组织成一个app?
我的理解就是Intent是信使,而activity的是执行者。一个activity的调用需要intent来告诉它应该启用。在整个过程中,Intent负责带有一些信息,其中一些可以是可有可无的,比方说这里的mailto之类的。我试验过,在没有这些信息的时候,发送email的activity也可以启动。而activity则是负责运行。就好像这里的寄发email一样。(由于,到目前为止,我还没有试验过如何发送隐式的intent。所以对于这层没有办法在语言上面表达清楚。)
其实最早对于intent和activity的认识我也很模糊。因为在我的概念中,一个app和activity应该是联系在一起的,即一个app对应几个activity。或者说是在用户使用一个app的时候,activity应该是组成一个app的。所以在这里,我很难找到intent的位置。
但是android中,app和activity的关系则不是如此。他们是两个层面的不相关的个体。app是一个功能的集合,它没有程序上的意义,它只是面向用户的接口,让用户知道,你写的东西大体是干什么的。而activity,则是功能的实现。
就以Email这个例子来说。我的app的功能是帮助用户发送包含一张列表的email。对于用户来说,是一个app。但是对于我来说,则是至少两个activity。一个是用户选择要输出的信息。而另一个则是发送email的过程。他们是两个不同的功能。之间的联系就是Intent。所以Intent就包含了信息。用户传递。而在隐式的Intent中,activity则是需要很多的条件来拦截。为的就是确定自己需要哪一种intent
分享到:
相关推荐
"Android学习笔记" Android学习笔记是Android开发者的必读书籍,书中涵盖了Android系统架构、Activity、Intent、资源管理等多方面的知识。本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中...
Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...
了解`ImageView`和`ImageButton`的内部工作原理,可以查看它们的源代码,学习Android视图组件的绘制和事件处理机制。这有助于优化性能,比如了解如何高效地加载和缓存图像。 ### 4. 工具使用 开发过程中,可以借助...
### Android开发学习笔记 #### Button按钮的实现与交互 在Android开发中,`Button`控件是最常用的用户界面元素之一,用于触发特定的操作或事件。本文档将详细讲解如何创建并自定义一个简单的按钮,并设置点击事件...
Android学习笔记(1)-永远不变的Hello World Google的Android SDK发布也有一段时间了,一直想研究一下却苦于找不到时间。利用这个周未,开始强迫自己再次进入学习状态,原因很简单:我看好开放的gPhone。 SDK的下载...
Android开发学习笔记(整理),整理论坛android学习笔记,较完整的讲解了android的内容。包括:view、activity、service、intent、广播机制、http连接、数据sqllite存储、后台线程、各种layout、偏好、本地文件操作、...
这篇学习笔记主要涵盖了关于布局的一些基本概念,特别是`fill_parent`和`wrap_content`这两种尺寸指定方式,以及如何通过XML布局文件来精确控制组件的位置。 首先,`fill_parent`和`wrap_content`是Android布局中的...
根据给定的信息,我们可以从Java和Android学习笔记中提取出一系列重要的知识点,下面将逐一进行详细解释。 ### Java基础知识 #### 1. 命令行基础操作 - **`javacmd`**: 这个命令是Java命令行工具的一部分,用于...
在Android应用开发中,"碎片"(Fragments)是一个关键的概念,它是在Android 3.0(API级别11)引入的,旨在增强用户界面的灵活性,特别是在平板电脑和其他大屏幕...通过实践和学习,你可以更好地掌握这一强大的工具。
Android学习笔记整理.pdf
Android学习笔记全全整理,是针对想要深入理解并掌握Android开发技术的学习者们的一份宝贵资源。这份笔记涵盖了从基础到高级的多个方面,旨在帮助读者建立起完整的Android知识体系。以下将详细介绍其中可能包含的...
本篇学习笔记主要涵盖了ArcGIS for Android的基础配置和核心组件MapVie的使用。 首先,配置ArcGIS for Android项目需要在`Project`级别的`build.gradle`文件中添加Esri的仓库,确保能获取到所需的库。接着,在`...
Android基础学习笔记主要涵盖了一系列关于Android开发的基本概念和关键组件,以下是这些知识点的详细解析: 1. **Activity**: 是Android应用程序的基本单元,它代表用户在屏幕上看到的一个界面。每个Activity都必须...
目录,整理论坛android学习笔记,较完整的讲解了android的内容。包括:view、activity、service、intent、广播机制、http连接、数据sqllite存储、后台线程、各种layout、偏好、本地文件操作、apdapter等几乎全部内容...