android - 如何正确onResume

标签 android onclick onresume onpause

我创建了一个简单的应用程序,它有两个用于播放和停止歌曲的按钮。一切正常。

但是我希望它在应用程序运行时暂停播放歌曲当应用程序再次启动时暂停并恢复播放歌曲。

我试过:

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    mp.start();
}

但这会在应用程序首次启动时自动启动歌曲。当您点击播放时,它还会弄乱应用程序、歌曲被破解和应用程序崩溃。

这是 onPause 和 onDestroy:

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    mp.pause();
}

@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    mp.stop();
    mp.release();
} }

最佳答案

onResume() 方法中检查歌曲是否已经在播放,您不应该再次播放它。 所以现在你的 onResume 变成了

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    if (mp != null && mp.getCurrentPosition() > 0) {
        mp.start();
    }
}

这将解决您的崩溃问题。

现在是第二部分,如何从暂停的位置继续播放。 根据文档 MediaPlayer类有两个方法 getCurrentPosition()seekTo(int msec) 您可以使用 SharedPreferences 将 currentPosition 存储在 onPause() 方法和您的 onResume() 获取 SharedPreferencesseekTo(int msec) 的位置该位置,然后再次开始播放。

关于android - 如何正确onResume,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25425360/

相关文章:

javascript - 将 onclick 事件从嵌入式 SVG 路由到更高级别

Android Activity onResume() 和 onActivityResult() 冲突

android - 如何更改 android 中的 whiteBalance 增益值?

java - 如何在ImageView java android上设置位图

java - 启用 GPS 时启动我的 Android 应用程序强制关闭

android - OnCreate 而不是 OnResume/OnRestart?

android - Android onResume后ListView为空

Android - Cron String 和 Cron Job with Quartz

android - 删除 Android 中 ImageButton 的默认背景,但保留 onClick 突出显示

html - 如何使弹出文本在点击后/点击后消失?