android中止线程_Android如何结束并重启线程? | 学步园
相信開發過游戲的人都認識SurfaceView的雙線程雙緩沖機制。但一旦當前Activity退出到Home,再回到Activity便會報錯:Thread already started.
尋找過網上的解決方法,一個是退出到Home時觸發surfaceDestroyed()事件,令thread stop。回到Activity時觸發surfaceCreated事件令thread.start。但結果依然提示Thread already started; 第二個方法就是每重新進入Activity觸發onRestart()事件,new一次surfaceView,構造新的線程(我的new Thread是在surfaceview的構造函數里面,所以new了SurfaceView也同時會new
Thread),但debug一次發現Thread依然是舊的Thread內存地址,沒有構造新的?最后一個方法,最為成功的,就是把new Thread放到surfaceCreated里面,而不是在構造函數里。這樣每次返回Activity時都是新的Thread。那么原來的Thread怎么辦呢?似乎不用處理,debug窗口已經看不到原來的那個Thread地址。
好了,問題已經解決。但這里有兩個遺留問題需要討論:一、為什么我new過一次surfaceView并同時new Thread以后,構造的不是新的線程,而是用回舊的線程?
二、假如用上述的第三個方法,舊的線程跑去哪里了?難道還在后臺跑嗎?那debug窗口為什么觀察不到?
總結
以上是生活随笔為你收集整理的android中止线程_Android如何结束并重启线程? | 学步园的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 静态市盈率什么意思 静态市盈率的意思是什
- 下一篇: 债券指数