应用程序的背景音乐是​​否应该拥有自己的主题?

时间:2015-04-12 14:45:23

标签: java android performance background-music

我正在尝试构建一个应用程序,只要调用onCreate(),就会播放一段音乐,我希望这个音乐可以在整个应用程序中播放,即跨越各个活动。到目前为止我所做的是在OnCreate()中创建一个Thread,我称之为backgroundMusic,在其中我从Raw文件夹中的一个音乐片段创建了一个MediaPlayer对象。鉴于音乐本身只运行了一分钟左右,并且在应用程序上花费的平均时间更多,我做了一段时间循环,只要应用程序正在运行检查音乐是否正在播放,如果没有,则调用start() ;

backgroundMusic = new Thread(new Runnable() {
    @Override
    public void run() {
        while ( appIsRunning ){

            if( ! music.isPlaying () ){
                music.start();
            }
        }
    }
});backgroundMusic.start();

代码运行得很好,但是我确实注意到了一些滞后特别是后来当其他一些线程和图像被加载时。我想问一下,这是播放背景音乐的合适方式吗?有更好的更有效的方法吗? 另外,当应用程序关闭时,如何让音乐停止?

1 个答案:

答案 0 :(得分:1)

  

这是播放背景音乐的合适方式吗?

不,您需要在服务上声明音乐。服务:

  • 将独立于LifeCycle活动,因此当活动关闭时音乐将继续播放

  • 可以在需要时暂停,如来电

Here可以帮助您入门。快乐的编码!