四大组件的生命周期和简单用法

Activity的生命周期:


启动方法:

创建一个Intent对象,将该activity以及将要打开的activity传进去,

然后Intent对象将代入startActivity()即可启动

startActivity(Intent(this@someActivity,targetClass::class.java))

Service的生命周期:


使用方法有两种:

startService()

通过简单的startService()进行service启动,此后启动该Service的组件无法把控Service的生命周期,理论上此后该Service可以在后台无期限运行,但根据实际情况该Service可能会在任意一个时刻被杀死

我们可以在onStartCommand()里面做我们要做的操作,虽然运行anr时间比Activity多了近一倍,但Service跟Activity一样不可以做耗时操作,

bindService()

通过绑定的方式启动Service

绑定后,该Service与启动绑定操作的组件形成绑定,当组件销毁时,该Service也随着销毁。


BroadcastReceive广播接收器生命周期:

生命周期只有十秒左右,如果在 onReceive() 内做超过十秒内的事情,就会报ANR(Application No Response) 程序无响应的错误信息

它的生命周期为从回调onReceive()方法开始到该方法返回结果后结束

用法

静态注册(常驻广播)

在AndroidManifest.xml中进行注册,App启动的时候自动注册到系统中,不受任何组件生命周期影响,(即便应用程序已经关闭),但是 耗电,占内存 

动态注册(非常驻广播)

在代码中进行注册,通过IntentFilter意图过滤器筛选需要监听的广播,记得注销(推荐在onResume()注册,在onPause()注销),使用灵活,生命周期随组件变化


ContentProvider

提供数据的进程使用contentProvider 内容提供者

获取数据的进程使用contentresolver 内容解析器

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容