恢复活动时难以维持先前的进度状态

时间:2012-01-31 13:41:34

标签: android

我正在尝试下载一个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;
       }

}

其余的工作由剩余的课程完成,例如递增进度条,播放音频等。

随着音频的进展,进度条会增加。我面临的问题是,在播放音频时,如果我按下按钮并打开上一个活动音频播放(这就是我想要的),但是当我在意图的帮助下回到活动时,一切以刚创建活动的方式出现。之前进度的进度条现在看起来我第一次打开此活动时。简单来说,问题在于,播放音频文件的活动没有恢复到先前的状态。请帮助我。

2 个答案:

答案 0 :(得分:1)

onCreate(savedInstance)的参数精确设计用于保存活动的状态。见Saving Android Activity state using Save Instance State

答案 1 :(得分:0)

在活动生命周期中,您必须捕获onResume()Intent并相应地填充数据。