活动生命周期回调是否必须成对实现?
例如
- 如果你覆盖
onCreate
你也必须覆盖onDestroy
? - 如果你覆盖
onStart
你也必须覆盖onStop
? - 如果你覆盖
onResume
你也必须覆盖onPause
?
即,如果您实施onCreate
但省略实施,您的应用程序会崩溃onDestroy
吗?
成对实施只是一种好习惯,还是根本不重要(只需实施您需要的)?
活动生命周期回调是否必须成对实现?
例如
onCreate
你也必须覆盖onDestroy
?onStart
你也必须覆盖onStop
?onResume
你也必须覆盖onPause
?即,如果您实施onCreate
但省略实施,您的应用程序会崩溃onDestroy
吗?
成对实施只是一种好习惯,还是根本不重要(只需实施您需要的)?
只实现你需要的。其他的将自动从超类 ( Activity
) 中调用。如果您需要在生命周期的那个点添加功能,您应该只覆盖它们。通常,如果您要处理 in 中的某些内容onPause()
,您可能还会处理 in 中的逆运算onResume()
。不过,情况并非总是如此。
编辑:通过你的编辑,没有看到代码,我猜你忘记了对super.onStart()
and的调用super.onResume()
。如果没有,请发布崩溃的实现和堆栈跟踪。
不,您不需要成对覆盖生命周期方法。
但是,如果您需要显式释放您在一种方法中创建的变量,那么在匹配方法中释放它是有意义的。
如果您实现 onCreate 但忽略实现 onDestroy 说,您的应用程序会崩溃吗?
Stack Overflow 上的一个反复出现的问题涉及关闭 SQLiteDatabases。许多程序员打开他们的数据库,onCreate()
但忘记在onDestory()
.