我有一个用来播放录音的BottomSheetDialogFragment。但是这个片段是从零开始重新创建的,并且在配置改变时被破坏。
我试图找到一个生命周期事件,只有当碎片被完全销毁时才调用。但是,在任何配置更改(例如旋转更改)上都会调用所有的onDetach() onDestroy() onDestroyView()。
我试过了retainInstance,但是onDestroy()还在被打电话。
我见过其他玩家像谷歌一样用小对话框播放音乐。是因为他们用的是活动而不是片段吗?更独立的东西可能有更大的力量,但它仍然是一个完整的活动,更难控制。
发布于 2018-11-27 09:07:33
看起来这个问题来自于库,即使片段没有被销毁,对话也被删除了。
override fun onDestroyView() {
if (dialog != null && retainInstance) {
dialog.setDismissMessage(null)
}
super.onDestroyView()
}这段代码修复了它,现在片段被保留了,onDestroy()不再被调用了。
https://stackoverflow.com/questions/53467084
复制相似问题