首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Intent 对象在 Android 开发中的施用

2012-06-29 
Intent 对象在 Android 开发中的应用简介:? ? ?? Android 是一个开放性移动开发平台,运行在该平台上的应用

Intent 对象在 Android 开发中的应用

简介:

? ? ?? Android 是一个开放性移动开发平台,运行在该平台上的应用程序具有完全平等的地位。我们可以利用现有的应用来帮助我们实现想要的功能。Android 应用程序区别于以往传统应用的显著特征是程序没有唯一的启动入口。应用程序由不同核心组件构成,各个组件之间通过消息传递机制进行交互。而 Intent 作为消息传递的载体在 Android 应用开发中具有独特而重要的地位。本文将详细介绍 Intent 对象及其在 Android 开发中的应用,通过本文的学习可使你了解如何使用 Intent 在应用程序之间传递信息,以及如何通过 Intent 显式或隐式的方式启动应用或服务。




图 2. 点击 startActivityForResult 页面

Intent 对象在 Android 开发中的施用

图 3. 点击 returnButton 返回页面


Intent 对象在 Android 开发中的施用

如上图所示,点击 startActivityForResult 按钮返回首页面之后,从子页面中返回的结果传递到调用页面中并输出在屏幕上。

使用隐式 Intent 通过系统注册的 Intent 过滤规则启动合适的目标组件。例如定义如下 Intent 消息:


清单 3. 定义 Intent 消息



图 5. 点击 startActivity 切换页面


Intent 对象在 Android 开发中的施用

?

??? 短信业务是移动增值业务中最为重要的应用之一,当用户终端设备的短信后台应用收到短信时,终端设备会采用铃声、振动、闪烁 LED 指示灯等多种方式通知用户,这种轻量级的提醒机制不会打断用户的当前操作。当用户响应该通知时如何呈现该通知以及如何处理该通知的单击事件是一项必不可少的工作。Android 系统采用通知管理器 NotificationManager 来管理所有 Notification 通知。通过调用 Notification 的 setLatestEventInfo()接口来更新默认的显示布局并传入 PendingIntent 对象来设置单击事件的处理。

PendingIntent 对象是对将要执行的目标行为和 Intent 消息的描述。该对象实例可以通过 getActivity(Context, Intent)getBroadcast(Context, Intent)getService(Context, Intent)获得。从名称中可以看出每种方法返回的 PendingIntent 对象都将会启动新的组件:


清单 14. 启动新的组件

 public class NotificationActivity extends Activity {     private static final int NOTIFICATION_ID = 1;     private NotificationManager myNotificationManager;  public void onCreate(Bundle saveIntenceState) {     ……    myNotificationManager =     (NotificationManager)  getSystemService(NOTIFICATION_SERVICE);     int icon = R.drawable.smallIcon;     String tickerText = “Get New Message”;     String expandTitle = “NewMessage”;     String expandContent = “The notification content abstract when it expanded. ”;     Context context = getApplicationContext();        Notification notifiMessage =     new Notification(icon,tickerText,System.currentTimeMillis());     Intent requestIntent = new Intent(OrginalActivity.class, DestinationActivity.class);     PendingIntent pendIntent = PendingIntent.getActivity(context, 0, requestIntent, 0);     notifiMessage.setLatestEventInfo(context, expandTitle, expandContent, pendIntent);     myNotificationManager.notify(NOTIFICATION_ID, notifiMessage);  }  } 

?

这里实例化一个 Notification 对象,之后通过 NotificationManager 将通知显示出来。需要注意通知管理器需要将每一个管理的通知都设置一个唯一的 ID,这个 ID 由开发者自行指定。对于显示的通知调用 setLatestEventInfo()方法设置通知展开后将要显示的标题和内容,将显式 Intent 传入 getActivity()方法获得 PendingIntent 对象实例作为参数传入设置单击事件处理消息。当用户点击该通知时,系统会使用相应的 Intent 消息加载并启动目标组件。

?

总结

??? 本文主要介绍 Android 系统的消息传递机制 Intent,重点介绍了 Intent 的组成部分、分类和过滤规则并通过实例介绍了其在 Android 系统开发中的应用。Intent 作为应用中或应用间组件连接的纽带,将应用中各个组件有效的结合起来,形成开放互联的移动开发平台。

?

文章摘自
http://www.ibm.com/developerworks/cn/opensource/os-cn-android-intent/index.html#author1

?

关于作者

王柯,国际商业机器(中国)投资有限公司西安分公司 软件工程师。具有电信以及Android应用软件开发经验。目前主要从事java方面的软件开发工作。