Проблемы с Acctivity LifeCycle с воспроизведением VideoView - PullRequest
1 голос
/ 17 марта 2010

Привет всем, у меня возникли другие проблемы с VideoView. Затем воспроизводится видео, и я усыпляю устройство с помощью жёсткой кнопки, вызывается onPause(). Но за этим следует:

03-17 11:26:33.779: WARN/ActivityManager(884): Activity pause timeout for HistoryRecord{4359f620 com.package/com.package.VideoViewActivity}

А потом у меня снова onStart() / onResume(), и видео начинает воспроизводиться. Я пытаюсь переместить код вокруг onStart() / onStop() - кажется, не имеет значения.

пример кода:

public class VideoViewActivity extends Activity {


    private String path = "";
    private VideoView mVideoView;
    private static final String MEDIA_URL = "media_url";

    @Override
    public void onCreate(Bundle icicle) {

        super.onCreate(icicle);
        setContentView(R.layout.videoview);
        mVideoView = (VideoView)findViewById(R.id.surface_view);
        path = getIntent().getStringExtra(MEDIA_URL);
    }

    @Override
    public void onResume() {

        super.onResume();
        mVideoView.setVideoPath(path);
        mVideoView.setMediaController(new MediaController(this));
        mVideoView.requestFocus();
        mVideoView.start();
    }

    @Override
    public void onPause() {

        super.onPause();
        mVideoView.stopPlayback();

        mVideoView.setMediaController(null);
    }
}

Почему это происходит? И как мне это остановить?

Это не лучший опыт, чем когда вы переводите устройство в спящий режим, и он начинает воспроизводить видео

1 Ответ

1 голос
/ 18 марта 2010

ОК, похоже, что поведение связано с жизненным циклом активности и тем фактом, что VideoViewActivity настроена на ландшафт в манифесте. Добавление

android:configChanges="keyboardHidden|orientation" 

за эту деятельность Кажется, это решает проблему, а затем вы переводите устройство в спящий режим только с помощью onPause (), вызываемой vs before - все методы жизненного цикла были выполнены. Я сделаю еще тестирование, чтобы убедиться, что оно исправлено ...

...