Проблемы с жизненным циклом активности при воспроизведении видеозаписи
-
20-09-2019 - |
Вопрос
Привет всем, я столкнулся с другой проблемой с 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);
}
}
Почему это происходит?И как мне остановить это?
Это не самый лучший опыт, чем перевести свое устройство в спящий режим, и оно начнет воспроизводить видео
Решение
Хорошо, похоже, что поведение связано с жизненным циклом activity и тем фактом, что для VideoViewActivity в манифесте задано значение landscape .Добавление
android:configChanges="keyboardHidden|orientation"
для этого действия кажется, проблема устранена, а затем вы переводите устройство в спящий режим только onPause(), вызванный vs ранее - все методы жизненного цикла были выполнены.Я проведу дополнительное тестирование, чтобы убедиться, что это исправлено...