活动生命周期回调是否必须成对实施?
e.g。
onCreate
,还必须覆盖onDestroy
?onStart
,还必须覆盖onStop
? onResume
,还必须覆盖onPause
?即。如果您实施onCreate
但是省略实施onDestroy
,那么您的应用会崩溃吗?
成对实施是一种好的做法,还是根本不重要(只是实施你需要的东西)?
答案 0 :(得分:4)
只实现您的需求。其他人将自动从超类(Activity
)调用。如果需要在生命周期的那一点添加功能,则只应覆盖它们。通常,如果您正在处理onPause()
中的某些内容,那么您可能还会在onResume()
中处理逆操作。但事实并非总是如此。
编辑:通过编辑,不看代码,我猜您忘记了对super.onStart()
和super.onResume()
的通话。如果没有,请发布您的实现并发现崩溃的堆栈跟踪。
答案 1 :(得分:2)
没有。您不需要 来成功覆盖生命周期方法。
但是如果你需要显式释放你在一个方法中创建的变量,那么在匹配方法中释放它是有意义的。
如果您实施onCreate但是省略实施onDestroy会导致您的应用程序崩溃吗?
Stack Overflow上的重复问题涉及closing SQLiteDatabases。许多程序员在onCreate()
中打开他们的数据库,但忘记在onDestory()
中关闭它们。