Lifecycle是什么?
Lifecycle是一个Android生命周期管理的组件,在Android中,activity和fragment都具有它们自己的生命周期,对于android开发来说,界面的生命周期对我们来说是很重要的,处理不好的话就会出现内存泄漏的问题。在android开发中,很多功能的实现都需要在不同的生命周期中进行相应操作的调用,比如说地图,定位需要在onStart中执行start操作,在onStop中执行stop操作;还有播放器需要在onStart中的进行连接,在onStop中进行中断连接的操作。如果我们忘记了在onStop或者onDestory中释放资源,那么就会导致内存泄漏的问题。
为了更加清楚的了解Lifecycle和传统生命周期管理的区别,我把Google中的示例代码放上,让大家更好的理解Lifecycles
Kotlin代码:
internal class MyLocationListener(
private val context: Context,
private val callback: (Location) -> Unit
) {
fun start() {
// connect to system location service
}
fun stop() {
// disconnect from system location service
}
}
class MyActivity : AppCompatActivity() {
private lateinit var myLocationListener: MyLocationListener
override fun onCreate(...) {
myLocationListener = MyLocationListener(this) {
location ->
// update UI
}
}
public override fun onStart() {
super.onStart()
myLocationListener.start()
// manage other components that need to respond
// to the activity lifecycle
}
public override fun onStop() {
super.onStop()
myLocationListener.stop()
// manage other components that need to respond
// to the activity lifecycle
}
}
java代码:
class MyLocationListener {
public MyLocationListener(Context context, Callback callback) {
// ...
}
void start() {
// connect to system location service
}
void stop() {
// disconnect from system location service
}
}
class MyActivity extends AppCompatActivity {
private MyLocationListener myLocationListener;
@Override
public void onCreate(...) {
myLocationListener = new MyLocationListener(this, (location) -> {
// update UI
}