保留媒体片段音乐播放
Retain media fragment music playing
我有一个 BottomSheetDialogFragment
用来播放录音。但是该片段正在从头开始重新创建并在配置更改时销毁。
我试图找到一个仅在片段完全销毁时调用的生命周期事件。但是所有 onDetach()
onDestroy()
onDestroyView()
都会在任何配置更改(例如旋转更改)时被调用。
我试过 retainInstance
但 onDestroy()
仍然被调用。
我见过其他播放器像 Google 使用小对话框播放音乐一样。是因为他们使用的是 Activity 而不是片段吗?更独立的东西可能有更多的力量,但它仍然是一个完整的activity,更难控制。
看起来问题出在库中,即使片段没有被销毁,对话框也被关闭了。
override fun onDestroyView() {
if (dialog != null && retainInstance) {
dialog.setDismissMessage(null)
}
super.onDestroyView()
}
这段代码修复了它,现在片段被保留并且 onDestroy()
不再被调用。
我有一个 BottomSheetDialogFragment
用来播放录音。但是该片段正在从头开始重新创建并在配置更改时销毁。
我试图找到一个仅在片段完全销毁时调用的生命周期事件。但是所有 onDetach()
onDestroy()
onDestroyView()
都会在任何配置更改(例如旋转更改)时被调用。
我试过 retainInstance
但 onDestroy()
仍然被调用。
我见过其他播放器像 Google 使用小对话框播放音乐一样。是因为他们使用的是 Activity 而不是片段吗?更独立的东西可能有更多的力量,但它仍然是一个完整的activity,更难控制。
看起来问题出在库中,即使片段没有被销毁,对话框也被关闭了。
override fun onDestroyView() {
if (dialog != null && retainInstance) {
dialog.setDismissMessage(null)
}
super.onDestroyView()
}
这段代码修复了它,现在片段被保留并且 onDestroy()
不再被调用。