【发布时间】:2021-05-27 21:35:55
【问题描述】:
我目前有一个使用带有底部导航的导航组件的应用程序 (Java)。每个标签都有一个片段。
其中一个片段导航到具有音频播放器(使用媒体播放器)的辅助片段。这个 audi 片段有以下代码,当我回到父片段时会停止音频:
@Override
public void onDestroy() {
super.onDestroy();
if (mp != null) {
mp.pause();
mp = null;
}
}
问题是,当播放音频时,我从底部导航点击不同的选项卡,音频会继续播放。我想到了使用以下内容:
@Override
public void onStop() {
super.onStop();
if (mp != null) {
mp.pause();
mp = null;
}
}
这解决了问题,但它也阻止了屏幕关闭时播放音频。 (当 onStop 不存在时不会发生这种情况)。
这个想法是让 pause() 函数在用户点击任何底部导航选项卡时执行。
以我目前的结构,当用户点击底部标签时,如何让声音停止?
【问题讨论】:
-
当您的应用程序关闭或屏幕关闭时,片段中的 MediaPlayer 不应继续播放(如果您愿意,您应该是 following the guide to building an audio playback app 以避免让 Android 终止您的媒体播放而在后台),所以
onStop()似乎正是片段的正确方法。
标签: android android-fragments android-navigation