Activity

流程:onCreate() onStart() onResume() onPause() onStop() onDestroy()

 

Service 

流程1,调用 startService() 进入 started状态:onCreate() onStartCommand() onDestroy()    

流程2,调用 bindService() 进入 bound状态:onCreate() onBind() onUnbind() onDestroy()

如果同时调用了 startService() 和 bindService(),则需要同时调用 StopService() 和 unbindService() 方法,onDestroy()才会执行。

startService()与bindService()区别:

(a)started service(启动服务)是由其他组件调用startService()方法启动的,这导致服务的onStartCommand()方法被调用。当服务是started状态时,其生命周期与启动它的组件无关,并且可以在后台无限期运行,即使启动服务的组件已经被销毁。因此,服务需要在完成任务后调用stopSelf()方法停止,或者由其他组件调用stopService()方法停止。

(b)使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。

 

Content Provider


(1)只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。

(2)ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。

 

Broadcast

(1)广播接收者的注册有两种方法,分别是程序动态注册和AndroidManifest文件中进行静态注册。

(2)动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。也就是说哪怕app本身未启动,该app订阅的广播在触发时也会对它起作用。

 

10-03 18:10