Android中Activity与Service通信——Broadcast、Receiver、Intent、Bundle
有些事情一直强调,一直不去遵守,到了某个时候,结果它自己成为了习惯。很不明白,就像小时候那么爱玩台球,怎么给自己施加压力还是不行;后来迷上了电脑、网络,居然就把台球给忽略了,想好好读书,还是天天跑网吧;到了大学有自己的电脑居然没怎么去过网吧了;真是奇怪的事情;O(∩_∩)O~什么时候记录这事情也能成为一种习惯,每当做完一些事情的时候就写,而不是总是找借口忙啊忙的......
今天主要说明的是Activity(或者其中的View,通过传递Context即可)怎么与Service不断地交互信息;如果只是一开始的传递数据,完全可以通过在创建Service前通过Intent配合Bundle传递;如果需要来回交换一些状态信息或者动作命令(Action),则可以利用Broadcast和Receiver来实现。
Activity和Service都有自己的生命周期,当Activity退出时,Service仍可以在后台默默服务。这里就简单介绍一个例子,Activity通过按钮点击发送不同的动作命令给Service执行。而Service再通过广播返回信息类似。
在Activity的代码中,可以有如下语句:
1.首先是创建Service
最后是记得因为在Onstart()中注册了接收广播,用SERVICE_COMMAND作为过滤符;那在Service销毁时,要unregisterReceiver(mReceiver);