新闻产经轻工日化电器通讯仪器机械冶金矿产建筑建材石油化工食品医药电子电工能源电力交通运输农业环保图片手机版
当前位置:中国市场调查网>产业>科技>  正文

谁动了我的Android之:Android神经系统

中国市场调查网  时间:08/17/2010 18:38:00   来源:IT168.com   作者:秋影

  

  

  当我们谈到神经系统组织,很多人会第一时刻将会想到条件反射,当然,神经系统是由最主要的中枢神经和周围的辅助神经共同组织形成的,首先由大脑提出请求由中枢神经协调各辅助神经来控制神经元完成一系列的功能活动。然而对于我们的Android来说也是存在如人一样的中枢神经和辅助神经控制我们Android的事件处理机制,毕竟Android也是人,不过只是机器人。

  下面我们来看下Android的神经组成:

  1.Activity

  2.Intent

  3.Broadcast

  4.Service

  OK,当大家看到这些辅助神经可能还不清楚是如何控制他在Android中的功能活动,没关系,现在我们就分别来分析下各个辅助神经。

  1.Activity

  直观来说,每个Activity就是负责处理我们能够看得到的一个屏幕(包含界面、菜单、对话框、程序动作等),根据Activity是否需要与其他Activity交换数据来区分,Activity可以分为两种类型:

  Ø独立的Activity

  独立的Activity是不需要从其他地方取得数据的Activity,只是单纯从一个屏幕转向到另外一个屏幕,不涉及数据的交换处理。

  Ø相依赖的Activity

  相依赖的Activity是需要与其他Activity交换数据的Activity,从交换数据方向又可以分为:单向和双向。从一个屏幕转向到另一个屏幕携带数据供另一屏幕使用的称为单向;需要在两个屏幕之间切换,并且屏幕上的数据会因另一个屏幕的操作而发生改变的称为双向。与独立的Activity比起来,相依赖的Activity变化会更加复杂。

  当然,在我们进行Activity操作时还会用到下面Intent的知识,大家不用心急,我们慢慢学习,相信经过我们的学习后可以很好地掌握android的神经系统。

  2.Intent

  Intent可以说是Android神经系统中的灵魂,屏幕或程序的跳转,以及数据的交换都是依靠我们的Intent了,Intent是一个动作与内容的集合。刚刚我们提到Activity,在Android中Activity的转向基本上都是依靠Intent来完成数据接收和发送的,Intent包含Activity间切换所需的动作、分类、数据等信息,就像是Activity的一个托管保姆。

  为了可以更好地让Intent运作,我们将特别定义的(MAP)类型Bundle来完成Intent中需要交换的数据,通过给Bundle对象来加载数据利用Intent来交换Bundle对象来完成更加复杂的数据交换操作。


  

  

  我们大家可以看如下示例:

  //声明Intent对象

  IntenttempIntent=newIntent();

  //为Intent对象设置从当前的Activity转向到哪个Activity

  tempIntent.setClass(当前Activity,转向后的Activity);

  //声明Bundle对象

  BundletempBundle=newBundle();

  //为Bundle对象加载数据,利用标签来区分不同数据

  tempBundle.putString(标签,数据);

  //将加载了数据的Bundle对象装载到Intent对象中,让Activity转向时一同交换过去

  tempIntent.putExtras(tempBundle);

  //启动新的Activity,从当前的Activity转向到setClass指定的Activity中,并进行数据交换处理

  startActivity(tempIntent);

  3.Broadcast

  在上面我们学习到Intent可以用来启动一个Activity,也可以用作Activity之间数据的交换处理,但是Intent的作用远远不止这些,Intent还有一个重要的作用就是作为不同进程间传递数据和事件的媒介。通常我们的Android系统本身在某些事件来临的时候会将这些Intent广播出来,然而注册的Broadcast就可以监听到这些广播出来的Intent,并且可以交换保存Intent中的数据,例如:电量变化、网络信号变化、来电等,Android系统都会进行Intent广播,注册了针对这些事件的Broadcast就可以来处理这些事件了。

  当然,我们使用Broadcast时,可别忘记注册哟,我们可以使用两种方式来注册我们的Broadcast:

  ØAndroidManifest.xml文件注册

  Ø程序代码注册

  4.Service

  我们可以从字面上就能理解Service,它就是服务。它是在后台运行,不可与用户交换的一个内容,它与上面所说的Activity级别差不多,但是Service不能自己运行,需要通过一个媒介来启动它。如果Service在主线程中运行会影响程序的UI操作或阻塞主线程中的其他事情,所以我们通常情况下会启用一个线程来完成Service。那么,我们什么时候需要使用Service呢?主要还是看程序的应用场景,比如后台音乐的播放等是需要后台有一个线程来完成这样的操作,我们就可以利用线程和Service来实现这样的操作。


  

  

  好了,在我们了解Android的神经系统组成之后,相信我们大家在今后的Android研发当中,一定会事半功倍,从而更能让Android机器人根据研发的者的意图来完成更便捷的功能事件活动。