1. 程式人生 > >Android中finish()與destroy()的區別

Android中finish()與destroy()的區別

   個人理解,這兩者的區別是finish()屬於執行方法,而destroy()屬於系統方法。finish()是在程式執行的過程中使用它來將物件銷燬,而destroy()方法是在系統將該activity完全銷燬(從記憶體中移除),釋放資源空間。在寫程式過程中,一般呼叫finish()。如果我們希望系統釋放資源的時候,進行某些操作,則可以重寫destroy()方法。

  以上是個人理解,希望多交流。以下的內容解釋的較為清楚,供大家學習。

以下編寫來自:http://blog.sina.com.cn/s/blog_95c607dd0102ux1v.html

finish()方法用於結束一個Activity的生命週期,而onDestory()方法則是Activity的一個生命週期方法,其作用是在一個Activity物件被銷燬之前,Android系統會呼叫該方法,用於釋放此Activity之前所佔用的資源。

finish會呼叫到onDestroy方法,
可以在onDestroy裡列印一句話,就會發現在finish方法那也會列印這句話。。。

Activity.finish()
Call this when your activity is done and should be closed.
在你的activity動作完成的時候,或者Activity需要關閉的時候,呼叫此方法。
當你呼叫此方法的時候,系統只是將最上面的Activity移出了棧,並沒有及時的呼叫onDestory()方法,其佔用的資源也沒有被及時釋放。因為移出了棧,所以當你點選手機上面的“back”按鍵的時候,也不會再找到這個Activity。

Activity.onDestory()
the system is temporarily destroying this instance of the activity to save space.
系統銷燬了這個Activity的例項在記憶體中佔據的空間。

在Activity的生命週期中,onDestory()方法是他生命的最後一步,資源空間等就被回收了。當重新進入此Activity的時候,必須重新建立,執行onCreate()方法。

相關推薦

Androidfinish()destroy()的區別

   個人理解,這兩者的區別是finish()屬於執行方法,而destroy()屬於系統方法。finish()是在程式執行的過程中使用它來將物件銷燬,而destroy()方法是在系統將該activ

轉:AndroidIntentServiceService的區別

https://blog.csdn.net/matrix_xu/article/details/7974393 Android中的Service是用於後臺服務的,當應用程式被掛到後臺的時候,問了保證應用某些元件仍然可以工作而引入了Service這個概念,那麼這裡面要強調的是Service不是獨立

android?attr/**@drawable/**或@color/**等的區別

今天在寫一個Demo,研究主題的時候,遇到了【?attr/colorPrimary】這個用法,由於網上都是千篇一律的回答,所以我只能硬著頭皮去看原始碼了,茶壺煮餃子,暫且記下來,作為備忘錄吧。 一、?

AndroidrequestLayout() invalidate()的區別

invalidate()方法雖然最終會呼叫到performTraversals()方法中,但這時measure和layout流程是不會重新執行的,因為檢視沒有強制重新測量的標誌位,而且大小也沒有發生過變化,所以這時只有draw流程可以得到執行。而如果你希望檢視的繪製流程可以完完整整地重新走一遍,就不

ANDROID UIDPID的作用區別

PID:為Process Identifier, PID就是各程序的身份標識,程式一執行系統就會自動分配給程序一個獨一無二的PID。程序中止後PID被系統回收,可能會被繼續分配給新執行的程式,但是在android系統中一般不會把已經kill掉的程序ID重新分配給新的程序,新產生程序的程序號,一般比產生之前所

AndroidJSONObjectJsonObject的區別

Android與伺服器互動的時候,我們經常使用json格式的資料,使用較多的是JSONObject與JsonObject這兩個類,它們有什麼區別呢? 我們先看一段程式碼: package com.example.testjson; import org.j

AndroidgetContext()getApplication()的區別

1.getContext()通常認為取到的是Activity物件,而getApplication()可以取到application物件 2.從Manifest中可以看出,一個應用程式只有一個Application節點。Application就是一個應用,因此,只要程式在執行

C#outref區別

erro 變量 但是 color 賦值 運行 網上 ann amp 一、ref(參考)與out區別 1、out(只出不進) 將方法中的參數傳遞出去,在方法中將該參數傳遞出去之前需要在該方法起始賦初值;在方法外傳遞的該參數可以不用賦值; 簡單理解就是:將一個東西拋出去之前必須

jQueryposition()offset()區別

元素 page mini alert span 文檔 back www. class jQuery中position()與offset()區別 position()獲取相對於它最近的具有相對位置(position:relative或position:absolute)

dos命令rem ::的區別

dos命令 一行 .html 等等 nbsp article 字符 log 註釋 參考: http://www.cnblogs.com/followyourdream/articles/3445862.html rem *** 是一條命令, 占一行 : **

[轉]MyBatisresultTyperesultMap區別

作用 進一步 sel 存在 其中 對象 直接 model ati MyBatis中關於resultType和resultMap的具體區別如下: MyBatis中在查詢進行select映射的時候,返回類型可以用resultType,也可以用resultMap。resultTy

struts2 ServletActionContextActionContext區別

copy 實現 沒有 action ins page comm 獲得 有一點 1. ActionContext 在Struts2開發中,除了將請求參數自動設置到Action的字段中,我們往往也需要在Action裏直接獲取請求(Request)或會話(Session)的一些信

MySQLMyISAMInnoDB區別及選擇,mysql添加外鍵

title 必須 pan 就會 默認 簡化 平臺 兩種 myisam InnoDB:支持事務處理等不加鎖讀取支持外鍵支持行鎖不支持FULLTEXT類型的索引不保存表的具體行數,掃描表來計算有多少行DELETE 表時,是一行一行的刪除InnoDB 把數據和索引存放在表空間裏面

ajax請求contentTypedataType區別

服務器 ajax 字符串 解析 div script http 使用 自動 contentType: 告訴服務器,我要發什麽類型的數據,默認值: "application/x-www-form-urlencoded"。 dataType:告訴服務器,我要想什麽類型的數據。如

pythonbreakcontinue區別

print 方法 其中 dom 我們 spa strong bre 語法 1.在其他語言中break與continue也被經常使用到,其中用法稍微有些去別,下面我們使用python的語法結構來看看是否和在其他語言中的使用方法一致。 continue:是跳出本次循環,進入到下

AndroidwindowTranslucentStatuswindowTranslucentNavigation的一些設置(轉)

windows 屏幕 contex 拉伸 新的 system 整體 navbar 額外 在iOS中,你可能發現頁面會整體拉升到狀態欄,整個頁面效果就會顯得更加的高端大氣上檔次,在Android4.4以後其實也有這種效果的實現,下面我就說一下在進行這種效果實現時碰到的一些坑,

javaa++++a區別

demo div main highlight print class 結果 public 別了 java中a++與++a區別 a++與++a的區別,如果單獨使用沒有任何區別,如果在運算中就有區別了,a++是先運算在賦值,而++a是先賦值在運算!! class dem

Python的 // / 的區別

區別 best 浮點數 b- eui 精確 2.x 大於 ext 通常C/C++中,"/ " 算術運算符的計算結果是根據參與運算的兩邊的數據決定的,比如:  6 / 3 = 2 ; 6,3都是整數,那麽結果也就是整數2;  6.0 / 3.0 = 2.0 ; 6.0,3.0

MySQLMyISAMInnoDB區別及選擇

重建 包含 好的 數據 mysql 備份 處理 表空間 種類 InnoDB:支持事務處理等不加鎖讀取支持外鍵支持行鎖不支持FULLTEXT類型的索引不保存表的具體行數,掃描表來計算有多少行DELETE 表時,是一行一行的刪除InnoDB 把數據和索引存放在表空間裏面跨平臺可

VUE datamethods區別

報錯 data back color 數據 con 全部 ack ken ``` let vm=new Vue({ //根實例 el:‘#app‘, data:{//都是數據 }, methods:{ // methods 和data中的數據會全部放到vm上,而且名字不