5.3.4 数据源组件的生命周期

理论上来说,数据源组件并没有所谓的生命周期,因为数据源组件的状态并不作为判定进程优先级的依据。所以系统在回收进程资源时,并不会将数据源组件的销毁事件告知开发者。

但Android会在构造数据源组件时调用ContentProvider.onCreate函数。开发者可以在该函数中初始化数据源所需的数据库或其他数据内容。

由此可知,在数据源组件中部署延迟写入等写优化策略是不合适的,因为数据源组件可能会“默默地”被系统回收,从而导致未持久化的写入数据丢失。所以,在数据源组件的实现中,写优化策略应该交由上层调用者,或者下层数据存储者(比如数据库)去实现。

一旦数据源组件被构造出来,就会保持长期运行的状态直至其所在的进程被系统回收。所以,不要在数据源组件中缓存过多的数据,以免占用内存空间。