活动生命周期回调是否必须成对实现?
例如
- 如果你覆盖
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().