2011-04-09 242 views
10

我在surfaceDestroyed()發生時遇到問題。我試圖讓我的線程停止在surfaceDestroyed()(SurfaceView的)方法中運行,但似乎我的表面永遠不會被實際銷燬......有人能告訴我什麼時候發生這種情況嗎?或者如何觸發它?何時發生surfaceDestroyed()

回答

18

每當你點擊返回或home鍵,讓你獲得活動:

活動的onPause

surfaceDestroyed

最後活動onDestroyed。

當你返回surfaceView被重建,但如果你已經使用靜態變量已經做驅動應用程序,他們要經常保存,它可能只是看起來像surfaceView都沒有被破壞。

關於關閉線程,看看這個:Android crash when app is closed and reopened

+0

你看,我還以爲是隻要你回來。不過,我試圖阻止我的線程在SurfaceDestroyed方法.....但他們依然會@。@ – 2011-04-09 23:16:59

+1

你不能輕易停止線程,只是停止循環在其中,然後用加盟,使他們完成自己和「加入」主UI線程,然後就可以正常關閉UI線程。見我提供的鏈接問題代碼surfaceDestroyed方法。 – Lumis 2011-04-10 00:22:46

2

surfaceDestroyed()當視圖是由TabHost管理不叫。