android学习笔记3---android应用程序四大组件
组件(Component)是对数据和方法的简单封装。组件可以有自己的属性和方法。属性是组件数据的简单访问者。方法则是组件的一些简单而可见的功能。使用组件可以实现拖放式编程、快速的属性处理以及真正的面向对象的设计。简而言之,组件就是对象。
android是基于组件的应用程序开发,在android的应用程序开发中,最重要的四种组件分别是Activity、Service、Content Provider、BroadCastReceiver。
![](http://images0.cnblogs.com/blog/486666/201305/24132508-383edea8e74748dab04d7613f3829f5c.png)
2.Service:Service是一种程序,它可以运行很长的时间,相当于后台的一个服务,服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事务,定义好需要接受的Intent提供同步和异步的接口。通过context.startService(Intent service)可以启动一个Service,通过Context.bindService()可以绑定一个Service。
如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次。 stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。
调用startService的生命周期为:onCreate --> onStart(可多次调用) --> onDestroy
onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候把调用者(Context,例如Activity)会和Service绑定在一起,Context退出了,Service就会调用onUnbind->onDestroy相应退出。
调用bindService的生命周期为:onCreate --> onBind(只一次,不可多次绑定) --> onUnbind --> onDestory。
一但销毁activity它就结束,如果按home把它放到后台,那他就不退出。。
在Android中,应用程序彼此之间相互独立的,它们都运行在自己独立的虚拟机中。Content Provider 提供了程序之间共享数据的方法,一个程序可以使用Content Provider 定义一个URI,提供统一的操作接口,其他程序可以通过此URI访问指定的数据,进行数据的增、删、改、查。
Content provider负责对外提供数据,并允许有需要的应用程序访问这些数据。
4.BroadCast Recevicer:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型。
BroadCast Recevicer可以让应用对一个外部的事件作出响应。通过NotificationManager来通知用户这些事情发生了,BroadcastReceiver注册的有两种方式,一种是可以在AndroidManifest.xml中注册,另一种可以在运行时的代码中使用Context.registerReceiver()进行注册。还可以通过Context.sendBroadcast()将他们自己的intent broadcasts广播给其他的应用程序。
BroadCast Recevicer是针对手机中出现的各种情况作出相对应的回应。
posted on 2013-05-24 14:37 liux_jiadukeji 阅读(369) 评论(0) 编辑 收藏 举报