三星 s6 edge onDestroy多次调用问题
項目里面有個問題單是訂購成功卻不能直接播放
首先看log 是訂購成功的廣播成功發送? 但是沒有接收操作 自然不會有播放的動作
一開始以為是設備將廣播攔截的問題,但是通過debug的方式發現,在訂購界面的訂購成功的廣播是發送了的,然而在播放鑒權的基類中卻沒有接收到
并且在debug斷點的走向中,是走到了unregisterReceiver的方法,將播放接收器注銷掉了,而此方法是在訂購界面的onDestroy方法中發送的廣播被基類的接收器接收并走到了注銷播放器的操作處。
令人疑惑的是,在訂購界面的oncreate方法后,就走到onDestroy的方法了。
知道了以上的信息,反而不知道從何下手了。
經大神指點,直接研究本訂購activity的生命周期,將所有其他的邏輯注銷,只留下setcontentview的語句,此時,發現會走至onResume 以及onPause 然后又重新oncreate 但是不會走到onDestroy方法了。
一點兒點兒釋放邏輯代碼,此時發現在只釋放了requestWindowFeature的情況下,就會運行至onDestroy方法,于是認為是本語句的問題,將其他代碼釋放,只注銷了requestwindowfeature的語句,發現還是走到了onDestroy的方法
又一次迷惑,大神則在研究本訂購activity的生命周期的發現中 一下看到重點:有重新oncreate了一次!!!這個卻被我忽略了。
網上搜索多次調用oncreate方法,大多說的是由于橫豎屏切換,才有本問題,抱著試一試的態度 按照其中的提示 在manifest中對應的activity注冊的內容中 添加了
android:configChanges="locale|orientation|keyboardHidden"
運行后還是有多次調用oncreate的情況發生。
搜索到http://blog.csdn.net/lvxiangan/article/details/41333475
其文章內容有
情況1:手機鎖屏或屏幕旋轉
手機橫豎屏的時候重新onCreate,所以在配置文件中增加了配置選項:
android:configChanges="orientation|keyboardHidden"
可是跟蹤發現,在屏幕旋轉的時候還會繼續調用onCreate
從sdk 3.2+,當手機屏幕發現旋轉,新增加一個screenSize,這個值也會跟著發生改變。所以需要把screenSize這項也要加入到配置文件中。
android:configChanges="orientation|keyboardHidden|screenSize"
添加了screenSize,發現錯誤被解決。
總結分析,由于三星 s6 edge有許多自動轉屏的特殊化處理,即是自己項目中并沒有轉屏,可能也有轉屏的情況發生,從而多次調用oncreate方法,即會有onDestroy方法被調用。
總結
以上是生活随笔為你收集整理的三星 s6 edge onDestroy多次调用问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2K19老是显示与服务器,你与游戏服务器
- 下一篇: 0903 无源滤波器;