Android:停止后台音乐并在前台再次播放

问题描述 投票:0回答:1

使用该服务,我让Android不会停止播放音乐

class Sound(): Service() {
    private var mainSoundPlayer = MediaPlayer()
    override fun onBind(arg0: Intent?): IBinder? {
        return null
    }
    override fun onCreate() {
        super.onCreate()
        mainSoundPlayer = MediaPlayer.create(this, R.raw.mainsound)
        mainSoundPlayer.isLooping = true
        mainSoundPlayer.start()
    }
    override fun onDestroy() {
        super.onDestroy()
    }
}

但问题是,当我使用最近键和返回键时,音乐不会停止,我希望音乐停止,当从最近的应用程序打开程序时,音乐会再次播放。

java android kotlin
1个回答
0
投票

发生这种情况的原因是,即使用户按“返回”、“主页”或“最近”,服务也会继续运行。 service onDestroy() 会在服务运行时被调用 通过调用 stopSelf() 或 stopService() 在内部由代码停止。

因此,您可以为您的活动重写 lifeCycle onPause()/onStop()/onResume() 方法,在该方法中您启动服务来调用 stopSelf()/stopServcie()。

© www.soinside.com 2019 - 2024. All rights reserved.