请介绍Activity的生命周期?⭐⭐⭐⭐⭐
请介绍Activity的4种启动模式?⭐⭐⭐⭐
请说下切换横竖屏时 Activity的生命周期变化?⭐⭐⭐⭐
Activity生命周期详解: Activity的生命周期方法及调用顺序如下:
onCreate():Activity被创建时调用
onStart():Activity变为可见时调用
onResume():Activity获得焦点,可与用户交互时调用
onPause():Activity失去焦点但仍可见时调用(如弹出对话框)
onStop():Activity完全不可见时调用
onDestroy():Activity被销毁前调用
onRestart():从stopped状态重新启动时调用
Activity的4种启动模式:
standard(标准模式):默认模式,每次启动都会新建实例
singleTop(栈顶复用):如果已在栈顶则复用,否则新建
singleTask(栈内复用):在同一个task中复用,清除其上所有Activity
singleInstance(全局复用):整个系统唯一实例,位于独立栈
横竖屏切换时生命周期:
默认情况下会发生:
onPause() → onStop() → onDestroy() → onCreate() → onStart() → onResume()
这是因为它会重建Activity。可以通过在Manifest中配置android:configChanges来避免重建。
Service的启动方式及区别:
startService():通过startService()启动,会一直运行直到调用stopService()
bindService():通过bindService()绑定,与调用者生命周期相关 区别:
startService()主要用于后台执行长期任务
bindService()主要用于进程间通信,可以获取Service的IBinder接口
Service生命周期:
对于startService():
onCreate() → onStartCommand() → onDestroy()
对于bindService():
onCreate() → onBind() → onUnbind() → onDestroy()
Activity、Service、Intent关系:
Activity和Service通过Intent进行通信
Activity可以启动或绑定Service
Service可以发送广播通知Activity
Intent充当Activity和Service之间的消息载体