大家都知道Android注册组件的能力时,一般都是直接在AndroidManifest.xml文件中增加intent-filter元素。但是有一个例外,注册广播使用的是另外一种方式,在代码中调用registerReceiver的来注册,这是为什么呢?把这个问题提出来,请各位赐教,下面说说我的理解。
我的理解是,activity、service都是有自己的启动方法和销毁方法,当应用关闭之后,activity和service将不会占用系统资源。而广播就不同了,只要注册了,就能接收到广播消息,而没有提供关闭的方法,所以如果通过在AndroidManifest.xml文件中直接注册广播之后,即使你的应用被关闭了,广播还是存在,广播还是能接收到相应的消息,还是会去处理,这无疑增加了系统的开销,同时也埋下了隐患。而通过代码注册就不同了,在应用结束的时候,通过调用unregisterReceiver即可取消广播,这样就不会对系统造成影响了。
不知道我的理解对不对,请大家积极评论哈。
阅读(472) | 评论(0) | 转发(0) |