Java 当用户返回活动时,Videoview未启动
我正在启动一个项目,我想在应用程序执行时在主活动中复制一个视频,当用户按下视频时,它将转到另一个活动。如果用户按下后退按钮,他将再次进入主屏幕并从头开始复制视频。视频位于原始目录中 问题在于,videoview是在首次创建活动时复制视频的,而不是在用户从其他活动(在我的例子中是MenuAction活动)返回到该活动时。代码非常简单,但我还是会粘贴它:Java 当用户返回活动时,Videoview未启动,java,android,android-activity,android-videoview,Java,Android,Android Activity,Android Videoview,我正在启动一个项目,我想在应用程序执行时在主活动中复制一个视频,当用户按下视频时,它将转到另一个活动。如果用户按下后退按钮,他将再次进入主屏幕并从头开始复制视频。视频位于原始目录中 问题在于,videoview是在首次创建活动时复制视频的,而不是在用户从其他活动(在我的例子中是MenuAction活动)返回到该活动时。代码非常简单,但我还是会粘贴它: public class MainActivity extends Activity { private VideoView mVideo
public class MainActivity extends Activity {
private VideoView mVideoView;
LinearLayout menuSection;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
mVideoView = (VideoView) findViewById(R.id.surface_view);
mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() +"/"+R.raw.documentariesandyou));
mVideoView.requestFocus();
mVideoView.setMediaController(null); //i dont want the controls of the videoview.
mVideoView.start();
menuSection = (LinearLayout) findViewById(R.id.menuSection);
menuSection.setOnClickListener(new menuSectionListener());
}
class menuSectionListener implements OnClickListener {
public void onClick(View v) {
Intent staticActivityIntent = new Intent(MainActivity.this, MenuSection.class);
startActivity(staticActivityIntent);
}
}
}
MenuAction只是一个显示文本视图(如“Hello world”)的活动,因此我不会粘贴它。Move
mVideoView.start()
到onStart()
,而不是onCreate()
有关活动生命周期如何工作的更多信息,请参见开发人员文档中的
我不确定,但您可能还需要移动
setVideoURI()代码>移动到onStart()
。移动mVideoView.start()代码>到onResume()
而不是onCreate()
作为:
@Override
protected void onResume() {
super.onResume();
mVideoView.start();
}
当活动已在运行时,请从您的活动调用seeonResume()
。callvideo.pause()
ononPause()
重写活动的方法,并调用video.resume()
ononResume()
活动的方法。onStart()在这种情况下有何帮助?@imrankhan,因为onCreate()仅当活动不在内存中时调用。在屏幕上显示活动之前调用onStart(),在本例中,当用户从其他地方导航回它时,onStart()或onResume()都可以工作。但我发现使用onResume()有时会导致视频重新启动,而这在我自己的视频应用程序中是意外的。谢谢,这个问题真的很简单。但我对安卓有点陌生,我已经习惯了所有的活动流程。谢谢!