Android 实现两个Activity跳转实例
程序员文章站
2024-03-04 23:47:00
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的视频提前结束。