1

画面を回転させるまで正常に動作するメディアプレーヤーシークバーがあります。私が見たいのは、シークバーの進歩が続くことです。ただし、ゼロにリセットされ、タッチイベントに応答しなくなります。

これはoncreateのコードです:

mSeekBar.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            seekChange(v);
            return false;
        }
    });

そしてメインクラスでは:

private final Runnable updatePositionRunnable = new Runnable() {
    public void run() {
        updatePosition();
    }
};
private void updatePosition() {
    handler.removeCallbacks(updatePositionRunnable);
    try{
        if (mp != null) mSeekBar.setProgress(mp.getCurrentPosition());
    } catch (Exception ex) {
        mSeekBar.setProgress(0);
        handler.removeCallbacks(updatePositionRunnable);
    }
    handler.postDelayed(updatePositionRunnable, 100);
}


//seekbar re-position track
private void seekChange(View v) {
    try{
        if (mp != null) mp.seekTo(mSeekBar.getProgress());
    } catch (Exception ex) {
    }
}

何が間違っている可能性があるかについて何か考えはありますか?

4

1 に答える 1

1

最終的に自分でそれを理解しました:

追加

android:configChanges = "keyboardHidden | orientation"

更新する必要のあるアクティビティごとにマニフェストに移動します。

于 2012-10-07T08:24:40.397 に答える