平板电脑智能家居应用层 intent类解析
时间:2016-12-14作者:华清远见
Intent 是android.content的一类API,android官方网站给出的定义是: 可见intent类是一种在不同组件之间传输结构化信息的工具,并能在组件中初始化其它的组件并返回结果,听起来,有些抽象。 Intent是java.lang.Object的子类,可以实例化一个对象,做为参数传递给方法startActivity,启动另外一个activity,例如在我们的平板智能家居的应用层中,主要有两个“activity”,在主activity中,创建一个intent对象: 调用intent的构造函数,并将SmartHomeActivity和NodeInfoActivity建立联系,然后通过调用去启动NodeInfoActivitiy,这样就完成了SmartHomeActivitiy向NodeInfoActivity的转换,当然,我们还调用了intent的putExtra方法向NodeInfoActivtity传递了节点信息: 广播接收器做出相应后,会强制关闭nodeinfactivity,并保存退出前nodeinfo里面的数据。 当然,要使广播接收器能正常工作,需要进行注册,我们注册针对BackReceiver的广播接收器: 同时对广播接收器进行了过滤设置,添加自定义的行为:cn.com.smarthome.android.back 这样在NodeInfoActivity中响应返回按键时: 通过实例化一个从NodeInfoActivity到SmartHomeActivity的intent, 并添加响应的动作,就可以匹配SmartHomeActivity的广播接收器,并把当前nodeinfo的值传递给backReceiver,调用sendBroadcast(intent),完成一次Intent对象的传递。 对于从传感器传来的底层信息,需要通过SmartHomeActivity传递数据到NodeInfoActivity进行实时更新,这样,就需要在NodeInfoActivity中注册不同类型的广播接收器,我们将数据类型大致分为两类,一类是包含温度、湿度、光照、三轴重力加速元素的结点信息,一类是rfid信息,我们需要在NodeInfoActivity 中注册针对这两类数据类型的广播接收器,代码如下: 在SmartHomeActivity中发送针对这两个广播接收器的广播: 在NodeInfoActivity中分别响应结点更新信息和rfid信息: 这样就实现了NodeInfoActivity数据的实时更新。
相关资讯
发表评论
|