一堆範例寫到Android中的Thread控制,都會寫一堆「怎麼把Thread關閉」的程式碼。
但其實...因為在Android中,有「Activity的生命週期」這件事,還有所謂的「APP之間的界線」,所以大家變得不太敢用一些理所當然的方法去操作Thread。
其實Thread並不會介意是哪個Activity在呼叫它、操縱它、管理它,就好像Thread根本不會介意設計者把操縱的程式寫在Activity之外。
把Thread的屬性設定為「public static」,然後大膽的關掉啟動它的Activity、並切換到另一個Activity。
程式意外的繼續順暢運作!
如果程式運作不順暢,絕對不是因為這樣切換Activity,更不是因為忘了把Thread關掉。
但...當你/妳確定這次按下「返回」後,APP的每個Activity都會退出執行狀態,那還是確保每個ˊThread都關掉吧!
講得很籠統?...連個程式碼都沒有,只有Thread/Activity/publi/static.....就別要求太多了。
(思考一下Thread設計的方式,思考一下Thread對各個Activity的意義。
如果是我,我會在Thread中留個Handler做為常數,讓各Activity不定時丟個Handler進去讓Thread來觸發/send......
如果是我,我會寫個統一的資料物件,讓各Activity去指揮Thread上網路接收資料,把資料轉入物件中,再讓Activity取用......
Google的Android API中,有些東西是寶,有些東西只有參考價值,但也有很多根本是渣。)
但其實...因為在Android中,有「Activity的生命週期」這件事,還有所謂的「APP之間的界線」,所以大家變得不太敢用一些理所當然的方法去操作Thread。
其實Thread並不會介意是哪個Activity在呼叫它、操縱它、管理它,就好像Thread根本不會介意設計者把操縱的程式寫在Activity之外。
把Thread的屬性設定為「public static」,然後大膽的關掉啟動它的Activity、並切換到另一個Activity。
程式意外的繼續順暢運作!
如果程式運作不順暢,絕對不是因為這樣切換Activity,更不是因為忘了把Thread關掉。
但...當你/妳確定這次按下「返回」後,APP的每個Activity都會退出執行狀態,那還是確保每個ˊThread都關掉吧!
講得很籠統?...連個程式碼都沒有,只有Thread/Activity/publi/static.....就別要求太多了。
(思考一下Thread設計的方式,思考一下Thread對各個Activity的意義。
如果是我,我會在Thread中留個Handler做為常數,讓各Activity不定時丟個Handler進去讓Thread來觸發/send......
如果是我,我會寫個統一的資料物件,讓各Activity去指揮Thread上網路接收資料,把資料轉入物件中,再讓Activity取用......
Google的Android API中,有些東西是寶,有些東西只有參考價值,但也有很多根本是渣。)
沒有留言:
張貼留言