2014-11-05 46 views
1

我已經編寫了一個從主機服務器流式傳輸的視頻播放器。有時緩衝需要很長時間。當用戶按下時,活動的onDestroy()沒有被調用{並且在某個時候拋出了一個ANR。這就好像系統正試圖破壞UI線程上的Actvity,因此是ANR。}無法在按下緩衝視頻的同時破壞活動

我不關心ANR,我想知道爲什麼onDestroy方法在緩衝過程中未被調用。

感謝和問候, 沙市基蘭克間

+0

的onDestroy()是從來沒有保證被調用。使用onPause()來做你想做的事情。 onPause()是一個誤導性的名字。它實際上意味着活動的UI線程是onPause,而不是應用程序本身。爲了回來,使用onResume(),再次誤導它的名字是它返回的活動的UI線程。 – 2014-11-05 14:57:13

+0

史蒂芬說什麼。 onDestroy()可能用於垃圾回收,java在對象上有類似的東西。 – 2014-11-05 15:56:09

+0

@ gmsk19我也面臨同樣的問題,你能解決它嗎?我正在考慮整合維他命選手,但sdk大小差不多是4mb :( – Bytecode 2016-02-01 06:53:53

回答

0

我想知道爲什麼不叫的onDestroy方法,而緩衝 正在進行中。

說實話,我不知道爲什麼。我所知道的是,每次都會被調用的是。有時候會打電話,有時候不會。因此,您的應用沒有任何問題。

這就是我把我的代碼在在大多數情況的原因(除非我想要做的事只有如果活動被破壞,未暫停)