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 内容解析器
网友评论