最后做的项目中,有用到横竖屏切换,碰到个小坑,在这里记录一下。
背景:用户在进入直播页面(姑且称之为RoomActivity),进入页面的时候会传入横竖屏的参数,在RoomActivity中拿到参数通过setRequestedOrientation
来进行设置横竖屏。
众所周知,android在横竖屏切换的时候,会销毁当前的页面,然后重建,导致的便是activity的生命周期会执行2次,那么写在其中的方法也会执行2次。在onStart()中我写了进入直播间的方法(enterRoom()),在onStop()中写了离开直播间的方法(exitRoom()),那么在切换屏幕的时候,会调用2次enterRoom,1次exitRoom,因为都是网络请求,不能保证后请求的一定后完成,那么就有可能导致2次enterRoom执行完成之后,exitRoom才执行完成,即用户发了2次进入直播间的请求,1次离开直播间的请求,离开的请求是最后完成,导致的最终结果便是用户不在直播间了,但他依然能看到画面,只不过看不到弹幕相关的一些东西了。
这显然是个问题,需要解决。
more >>