Android(安卓)Lifecycle 生命周期管理
16lz
2021-01-24
在activity和fragment中可以使用lifecycle对象来监听生命周期。
在Activity中添加监听
class LifecycleCallback : LifecycleObserver { //和activity的生命周期一样,create、start、resume、pause、stop、destroy @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) fun create(owner: LifecycleOwner) { log("create") } @OnLifecycleEvent(Lifecycle.Event.ON_START) fun start(owner: LifecycleOwner) { log("start") } @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) fun resume(owner: LifecycleOwner) { log("resume") } @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) fun pause(owner: LifecycleOwner) { log("pause") } @OnLifecycleEvent(Lifecycle.Event.ON_STOP) fun stop(owner: LifecycleOwner) { log("stop") } @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) fun destroy(owner: LifecycleOwner) { log("destroy") } @OnLifecycleEvent(Lifecycle.Event.ON_ANY) fun event(owner: LifecycleOwner, event: Lifecycle.Event) { //包括上面所有的事件,使用event枚举对象区分 log("event:$event") }}
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //添加观察者监听生命周期的变化 lifecycle.addObserver(LifecycleCallback()) }}
打印日志
//打开activity
create
event:ON_CREATE
start
event:ON_START
resume
event:ON_RESUME
//按home键
pause
event:ON_PAUSE
stop
event:ON_STOP
//从任务管理切换回app
start
event:ON_START
resume
event:ON_RESUME
//按返回键关闭activity
pause
event:ON_PAUSE
stop
event:ON_STOP
destroy
event:ON_DESTROY
在Fragment中添加监听
class MainActivity : AppCompatActivity() { private val fragment = MainFragment() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) supportFragmentManager.beginTransaction() .add(R.id.container, fragment) .commit() }}
class MainFragment: Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) lifecycle.addObserver(LifecycleCallback()) }}
打印日志
//打开activity
create
event:ON_CREATE
start
event:ON_START
resume
event:ON_RESUME
//按home键
pause
event:ON_PAUSE
stop
event:ON_STOP
//从任务管理切换回app
start
event:ON_START
resume
event:ON_RESUME
//按返回键关闭activity
pause
event:ON_PAUSE
stop
event:ON_STOP
destroy
event:ON_DESTROY
更多相关文章
- Android(安卓)ListView 和 BaseAdapter 的使用
- Android控件开发之四----ListView(4)
- [置顶] Android(安卓)IPC 通讯机制源码分析【下】
- Android(安卓)Wifi --自动连接指定SSID(各种加密方式均可)
- android4.4.2 bluetooth解析(二)
- strut2服务器与android交互数据
- System.out.println()和Log耗时之比
- Android中实现短信发送的一种方式
- Android周报第二十四期