欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 实现两个Activity跳转实例

程序员文章站 2024-03-03 18:19:52
1.关于从activity a跳转到activity b 其中activity a中有一个videoview,activity b中有一个mediaplayer。 两...

1.关于从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)之前,这样问题就解决了。

2.extends baseactivity

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的视频提前结束。