我正在尝试下载一个mp3文件。为此,我创建了一个这样的活动:
public class audiostream extends Activity{
private Button streamButton;
private ImageButton playButton;
private TextView textStreamed;
private boolean isPlaying;
private StreamingMediaPlayer audioStreamer; //This is the object of supporting class
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//other activities }
现在我正在调用此功能的按钮点击事件:
private void startStreamingAudio() {
try {
final ProgressBar progressBar = (ProgressBar) findViewById(R.id.progress_bar);
if ( audioStreamer != null) {
audioStreamer.interrupt();
}
audioStreamer = new StreamingMediaPlayer(this,textStreamed, playButton, streamButton,progressBar);
audioStreamer.startStreaming("file path",file_size,duration);
streamButton.setEnabled(false);
} catch (IOException e) {
}
}
以下是StreamingMediaPlayer类:
public class StreamingMediaPlayer {
private TextView textStreamed;
private ImageButton playButton;
private ProgressBar progressBar;
public StreamingMediaPlayer(Context context,TextView textStreamed, ImageButton playButton, Button streamButton,ProgressBar progressBar)
{
this.context = context;
this.textStreamed = textStreamed;
this.playButton = playButton;
this.progressBar = progressBar;
}
}
其余的工作由剩余的课程完成,例如递增进度条,播放音频等。
随着音频的进展,进度条会增加。我面临的问题是,在播放音频时,如果我按下按钮并打开上一个活动音频播放(这就是我想要的),但是当我在意图的帮助下回到活动时,一切以刚创建活动的方式出现。之前进度的进度条现在看起来我第一次打开此活动时。简单来说,问题在于,播放音频文件的活动没有恢复到先前的状态。请帮助我。
答案 0 :(得分:1)
onCreate(savedInstance)
的参数精确设计用于保存活动的状态。见Saving Android Activity state using Save Instance State
答案 1 :(得分:0)
在活动生命周期中,您必须捕获onResume()Intent并相应地填充数据。