关于从Activity A跳转到Activity B ,其中Activity A中有一个VideoView,Activity B中有一个MediaPlayer。

两个不同的视频的跳转,

前面我是在onStop()方法中销毁VideoView(因为MediaPlayer是全局共用的,而VideoView内包含MediaPlayer),但是每次进入Activity B视频播放了一点

就会弹出了,导致视频B播放失败

public class MovieSynopsis extends BaseActivity implements OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.movie_synopsis);

    }

    @Override
    public void onClick(View v) {
        if(v.equals(mPlayButton)){
            Intent intent = new Intent(MovieSynopsis.this, MoviePlayer.class);
            startActivity(intent);
        }
    }

    @Override
    protected void onStop() {
        if(movie_video!=null){
            movie_video.pause();
            movie_video.stopPlayback();
        }
        super.onStop();
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
    }

}

后来修改了一些东西,把VideoView的销毁放在了 startActivity(intent)之前,这样问题就解决了。

public class MovieSynopsis extends BaseActivity implements OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.movie_synopsis);

    }

    @Override
    public void onClick(View v) {
        if(v.equals(mPlayButton)){
            if(movie_video!=null){      
                movie_video.pause();
                movie_video.stopPlayback();
            }
            Intent intent = new Intent(MovieSynopsis.this, MoviePlayer.class);
            startActivity(intent);
        }
    }

    @Override
    protected void onStop() {
        if(movie_video!=null){
            movie_video.pause();
            movie_video.stopPlayback();
        }
        super.onStop();
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
    }

}

后来查了一下,发现原来失败的原因是,如果是在Activity A 的onStop()方法中销毁VideoView,则你在Activity B中播放了一段时间视频之后Activity A的onStop()方法才会去走,这样就导致了你在看Activity B中的视频的时候Activity A中会开始销毁VideoView中的MediaPlayer,导致你的Activity B的视频提前结束。

时间: 2024-12-28 10:55:40

关于从Activity A跳转到Activity B ,其中Activity A中有一个VideoView,Activity B中有一个MediaPlayer。的相关文章

自定义Activity的跳转动画

本来感觉是一个很小的需求, 后来发现老是 出问题, 使用Theme在 4.0上 操作不是很好用. 后来查阅资料, 需要在finish 后面 和 startActivity 后面添加 overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); 这句话 但是每个地方都添加这个代码也很坑爹, 于是看了一下ECShop的实现,发现是在BaseActivity加入的.. @Override public void star

创建多个activity及跳转

说明:在Android应用程序当中创建多个activity,并且启动一个activity的方法,以及activity之间的跳转. 例子:在MainActivity里面添加一个按钮,触动按钮,跳转到SecondActivity. 步骤:1.定义一个类,继承Activity,复写Activity当中的OnCreate方法. package com.away.b_01_multiactivity; import android.app.Activity; import android.os.Bundl

android入门:activity之间跳转,并且回传参数

介绍: 两个activity进行跳转,在跳转过程中,将message由MainActivity传递到secondActivity,并且当secondActivity退回至MainActivity时,也传递消息给MainActivity. 首先是MainActivity的布局文件: activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=

多activity界面跳转并传递数据

1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:id="@+id/activity_main&quo

3、Android中Activity的跳转

1.创建project file->new->android application 依次填入应用名称.project名.包名 在project文件夹下找到src/com.example.helloworld MainActivity.java 2.加入代码 package com.example.helloworld; import android.app.Activity; import android.content.Intent; import android.os.Bundle; i

android_定义多个Activity及跳转

说明:在Android应用程序其中创建多个activity,而且启动一个activity的方法,以及activity之间的跳转. 样例:在MainActivity里面加入一个button,触动button,跳转到SecondActivity. 步骤:1.定义一个类,继承Activity.复写Activity其中的OnCreate方法. package com.away.b_01_multiactivity; import android.app.Activity; import android.

Activity的跳转与传值

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://android.blog.51cto.com/268543/323982 Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据. Intent是Android一个很重要的类.Intent直译是“意图”,什么是意图呢?比如你想从这个Activity跳转到另外一个Activity,这就是一个意图.Intent类在Android系统中的作用很大,

Android Activity切换(跳转)时出现黑屏的解决方法

在两个Activity跳转时,由于第二个Activity在启动时加载了较多数据,就会在启动之前出现一个短暂的黑屏时间,解决这个问题比较简单的处理方法是将第二个Activity的主题设置成透明的,这样在启动第二个Activity时的黑屏就变成了显示第一个Activity界面.这个分两步完成:第一步:xxx/res/values/styles.xml中加入自定义Activity的Theme,如下所示: [html]  <style name="Transparent" parent=

ActivityGroup之Activity内跳转和外跳转

ActivityGroup之Activity内跳转和外跳转 在网上看到的一个源码,是关于ActivityGroup中Activity内跳转和外跳转的.有兴趣的朋友可以研究一下! 下载地址:http://www.devstore.cn/code/info/785.html 运行截图: