2010-03-17 35 views
1

大家好我遇到了VideoView的另一个问题。 然后视频播放,我把设备睡着,使用硬按钮,onPause()被称为。但是,其次是:带有VideoView播放功能的LifeCycle的问题

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); 
    } 
} 

为什么会发生?我该如何阻止?

这不是比你把你的设备睡觉的最大的体会,并开始播放视频

+0

嗯...这是什么问题? – CommonsWare 2010-03-17 17:34:03

+0

问题是a)它为什么会发生,以及b)如何阻止它。这不是一个最棒的体验,而是让您的设备进入睡眠状态并开始播放视频 – 2010-03-17 17:42:01

回答

1

OK,貌似行为与活动的生命周期和VideoViewActivity被设置为横向清单中的事实。添加

android:configChanges="keyboardHidden|orientation" 

该活动 似乎解决问题,然后你把设备只睡的onPause()称为VS前 - 被执行的所有生命周期方法。 我会做更多的测试,以确保它固定...