天天看點

Android菜鳥的成長筆記(17)—— 再看Android中的Unbounded Service

TestService.java

MainActivity.java

運作結果:

Android菜鳥的成長筆記(17)—— 再看Android中的Unbounded Service

會看到控制台會不斷的列印,但是螢幕會失去焦點,不能操作,等十幾秒後出現ANR異常。

Android菜鳥的成長筆記(17)—— 再看Android中的Unbounded Service

我們再看看DDMS中程序和線程

Android菜鳥的成長筆記(17)—— 再看Android中的Unbounded Service

可以看到即沒有新的程序,也沒有新的線程。

這充分說明Service即不是一個程序也不是一個 線程,而是一個綁定在程序中的服務,我們如果要在Service中處理延時操作應該放線上程中。

現在我們将輸出Log的代碼放入線程,啟動Service後在MainActivity中用stopService來停止Service.

Android菜鳥的成長筆記(17)—— 再看Android中的Unbounded Service

會發現已經調用了Service的onDestory方法,為什麼還在列印Log?其實Service此時卻是确實已經destroy了,但是我們啟動的線程還存在,是以繼續列印。

其實Service還有一個停止的方法stopSelf()

Android菜鳥的成長筆記(17)—— 再看Android中的Unbounded Service

繼續閱讀