Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当用户返回活动时,Videoview未启动_Java_Android_Android Activity_Android Videoview - Fatal编程技术网

Java 当用户返回活动时,Videoview未启动

Java 当用户返回活动时,Videoview未启动,java,android,android-activity,android-videoview,Java,Android,Android Activity,Android Videoview,我正在启动一个项目,我想在应用程序执行时在主活动中复制一个视频,当用户按下视频时,它将转到另一个活动。如果用户按下后退按钮,他将再次进入主屏幕并从头开始复制视频。视频位于原始目录中 问题在于,videoview是在首次创建活动时复制视频的,而不是在用户从其他活动(在我的例子中是MenuAction活动)返回到该活动时。代码非常简单,但我还是会粘贴它: public class MainActivity extends Activity { private VideoView mVideo

我正在启动一个项目,我想在应用程序执行时在主活动中复制一个视频,当用户按下视频时,它将转到另一个活动。如果用户按下后退按钮,他将再次进入主屏幕并从头开始复制视频。视频位于原始目录中

问题在于,videoview是在首次创建活动时复制视频的,而不是在用户从其他活动(在我的例子中是MenuAction活动)返回到该活动时。代码非常简单,但我还是会粘贴它:

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

当活动已在运行时,请从您的活动调用see
onResume()
。call
video.pause()
on
onPause()
重写活动的方法,并调用
video.resume()
on
onResume()
活动的方法。

onStart()在这种情况下有何帮助?@imrankhan,因为onCreate()仅当活动不在内存中时调用。在屏幕上显示活动之前调用onStart(),在本例中,当用户从其他地方导航回它时,onStart()或onResume()都可以工作。但我发现使用onResume()有时会导致视频重新启动,而这在我自己的视频应用程序中是意外的。谢谢,这个问题真的很简单。但我对安卓有点陌生,我已经习惯了所有的活动流程。谢谢!