2015-12-28 17:16:14 495浏览
在android系统应用中,你的应用中不需要包含你用到的另一个应用的代码,也不需要链接那些代码。相反地,当你想实现某个功能,其他应用的组件恰好提供了这个功能,就启动另一个应用相应的组件(不是让另一个应用全部启动)来完成你的工作。为了对这一特性进行支持,在Android开发系统中,当一个应用的任何部分需要被使用时,系统必须能启动这个应用,并且将相应部分实例化成java对象,所以,和其他大多数系统不同的是,Android应用程序没有一个单独的程序入口(例如:没有main()函数);相反地,Android只是提供一些必要的组件以便需要时系统能实例化并运行它。
在线coding学堂讲述Android组件Service与Broadcast receiver
1、Service
service是一个用户不可见的组件:在一段不确定的时间里运行在系统后台,每个service都继承自Service类。
例如,一个服务可以在后台播放音乐,在网络中获取数据或执行复杂的计算。可以连接或者绑定到一个正在运行的service(如果这个service还没运行的话就启动它),当连接到service后,你可以通过一个service暴露出来的接口和这个service交流,对音乐service来说,其接口允许用户暂停、后退、停止和重新播放音乐。
和Activity或者其他组件一样,service运行在这个应用进程的主线程中,所以它不应该阻塞其他的组件或者用户界面,它们经常为那些耗时长的任务单独开一个线程。一个service可以通过调用自己的stopSelf0,或者在其他应用组件中调用stopService(Intentservice)来关闭。
2、Broadcast receiver
一个Broadcast receiver是这样一个组件,它接收广播并作出反应;在系统中有很多已有的广播,比如反映时区变化的、电池变化的、用户修改了系统语言时的广播等,应用程序也可以自定义广播,比如定义这样一个广播:让其他的应用知道某些数据已经下载完毕可以使用了。
一个应用可以有任意多个Broadcast receiver来对它所关心的广播进行监听并作出反应。这一点在扣丁学堂Android开发培训中有很详细的介绍。所有的receiver都继承自Broadcast Receiver类。Broadcast receiver不显示在用户界面上,然而,它可以启动一个Activity来作为它接收到的信息一种反应,或者它可以使用NotificationManager来提示用户,Notifications可以通过不同的方式获得用户的注意,比如点亮闪光灯、震动、播放一个声音等,它们一般放一个图标在状态栏上,让用户可以打开获得这些信息。