1

我正在制作一个简单的媒体播放器应用程序,它从预定的 URL 下载歌曲,然后让用户播放、暂停和停止歌曲等。我现在唯一的问题是,如果用户在下载歌曲之前尝试播放歌曲,则应用程序强制关闭。

我的第一直觉是创建一个全局布尔标志,当我的下载服务下载文件时将其设置为 true,然后在我让 play.onclick 按钮运行播放服务之前使用该标志进行错误检查。

例如:

play.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            if (downloadFlag == true){
                Intent intent = new Intent(getApplicationContext(), PlayService.class);
                intent.putExtra("key", 0);
                intent.putExtra("nkey", 0);
                startService(intent);   
                String artistFirst = url.substring(url.lastIndexOf('/')+1, url.lastIndexOf('_'));
                String artistLast = url.substring(url.lastIndexOf('_')+1, url.lastIndexOf('-'));
                String song = url.substring(url.lastIndexOf('-')+1, url.lastIndexOf('.'));
                tv_artist.setText("Artist: "+artistFirst+" "+artistLast);
                tv_song.setText("Song: "+song);
                final ImageView album = (ImageView) findViewById(R.id.imageView1);
                album.setImageResource(R.drawable.album);
            }
        }
    });

这是解决这个问题的好方法还是我应该寻求更优雅的解决方案?

编辑::找到解决方案

在应用程序启动时,我禁用播放按钮,然后在我的广播接收器中启用它(下载完成时捕获)

 Button play = (Button) ((Activity) context).findViewById(R.id.play);
    play.setEnabled(true);
4

1 回答 1

0

下载歌曲后添加听众(在您将标志设置为 true 的同一位置)。或者禁用该按钮并在下载歌曲时启用它。这样你就不必使用标志了。

play.setEnabled(false)
//...
play.setEnabled(true)
于 2012-06-16T23:02:31.160 回答