這兩個疑問都是我在寫onKeyDown事碰見的,想要實現連續按兩次退出應用並stop service。 spa
一、關於finish(); 進程
finish是Activity的類,僅僅針對Activity,當調用finish()時,只是將活動推向後臺,並無當即釋放內存,活動的資源並無被清理.此處還有一個對比:System.exit(0)時,殺死了整個進程,這時候活動所佔的資源也會被釋放。 內存
正常再說,執行finish()時會調用activity的onDestroy(),這個毫無疑問。可是在「再按一次退出應用的程序」裏邊調用finish()時,卻不執行onDestroy(); 資源
另外,當按下後退鍵後(針對一個activity的應用),會調用onDestroy(); it
這是奇怪之一,爲何finish()有時會調用onDestroy,有時卻不會, 後臺
二、在onKeyDown中使用stopService(intent),雖然執行過這個語句,可是卻不會調用到Service的onDestroy(); service
因此實際上仍是會出現問題 程序
在這個activity的別的地方使用stopService,就是能夠執行Service的onDestroy activity
真不知道是爲何了,在這裏記錄一下 top