当我刷出它时,我可以在 Kotlin 中正确完成一个 android 应用程序吗?

问题描述

我希望,我可以正确地表达我的问题并且可以理解。

当我在 Kotlin 中编写 Android 应用程序时,我通常有一个按钮来关闭应用程序,例如通过编写文件或类似的东西来完成它。 现在,有时我不是用按钮完成它,而是把它刷出来。然后,文件没有写入..

是否有 Kotlin 语句来捕捉“滑动”并执行一些代码?当我膨胀另一个视图时,最后我有一个dismiss语句或dismiss.listener并且可以做一些代码

示例:

dialog.dismiss()   or popupwindow.dismiss()

那么问题:是否有dismiss.app或类似的东西?

解决方法

当您的应用程序的 Activity 被销毁时(用户将其滑开,或者系统终止应用程序以释放一些资源)it goes through the usual lifecycle steps,以 onDestroy 结尾。>

这些步骤还会被推送到任何观察该 Activity 生命周期的生命周期感知组件,包括 Fragment(如 DialogFragment) - 因此 will also get an onDestroy() call。 Fragment 也可以在其他时间销毁,但如果需要,您可以查看 Activity 的生命周期以了解那里发生了什么。


但实际上,作为一般规则,您希望将数据保存在 onStop() 之类的内容中,当 Activity/Fragment 将不再可见时,即进入后台。这是确保您已保存所有重要数据和状态的好时机,因为用户可能不会回来,而且您无法确定 onDestroy 会被整齐地调用(例如可能会崩溃,或者手机可能会突然断电)。

不要依赖于使用 onSaveInstanceState() 回调持久化数据 - 这是为了保存 UI 状态,如果用户退出应用程序/将其刷掉,那就算了作为他们下次加载应用程序时的全新开始,so onSaveInstanceState won't be called(因为未保存 UI 状态)。改用 onStop(或 onPause,如果您愿意 - 请查看这些链接以了解有关区别的更多信息)