最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Activity isFinishing()判斷Activity的狀態(tài)實(shí)例

 更新時間:2018年03月23日 09:15:59   作者:wangsf1112  
下面小編就為大家分享一篇Activity isFinishing()判斷Activity的狀態(tài)實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在Activity中調(diào)用finish()或按返回鍵退出時,若有資源被其他對象引用不能釋放(如context被某個單例對象引用或正在線程中被使用),則activity不會被調(diào)用onDestory()方法。

isFinishing() 可用來判斷Activity是否處于活躍狀態(tài)(false)還是等待回收狀態(tài)(true)。

isDestroyed() 根據(jù)源碼注釋可知,只有onDestroy()方法被調(diào)用后它才返回true,因此實(shí)際用處不大。

查看源代碼中的注釋:

/**
 * Check to see whether this activity is in the process of finishing,
 * either because you called {@link #finish} on it or someone else
 * has requested that it finished. This is often used in
 * {@link #onPause} to determine whether the activity is simply pausing or
 * completely finishing.
 *
 * @return If the activity is finishing, returns true; else returns false.
 *
 * @see #finish
 */
public boolean isFinishing() {
 return mFinished;
}
/**
 * Returns true if the final {@link #onDestroy()} call has been made
 * on the Activity, so this instance is now dead.
 */
public boolean isDestroyed() {
 return mDestroyed;
}

Activity onDestroy() 調(diào)用研究

剛剛一個BUG讓我發(fā)現(xiàn),如果 activity 實(shí)現(xiàn)了一個回調(diào)接口,然后使用 this 設(shè)置給需要回調(diào)接口的方法,這種應(yīng)用場景比較常見,最常見的就是實(shí)現(xiàn) onClickListener 接口,然后 findViewById().setOnClickListenr(this)

如果,這個回調(diào)接口設(shè)置到了一個靜態(tài)對象(單例模式),當(dāng) activity finish() 的時候(按返回鍵,回到桌面),則activity 不會被調(diào)用 onDestroy() ,原因可能是 activity 對象還在被引用!

此時你再點(diǎn)擊圖標(biāo)回到應(yīng)用,onCreate() 再次調(diào)用!

很明顯,如果你把資源釋放放在了 onDestroy() 里面,就會導(dǎo)致內(nèi)存泄露!

那有沒有解決辦法呢?

有的 你可以在 onPause() 方法里面判斷 isFinishing() ,正常調(diào)用 finish() 后 activity 的回調(diào)過程是 onPause、onStop、onDestroy ,倘若出現(xiàn)上面的情況,只到 onPause!但是 isFinishing() 標(biāo)志還是為 true !你可以釋放資源了。

以上這篇Activity isFinishing()判斷Activity的狀態(tài)實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

宝兴县| 蛟河市| 海阳市| 特克斯县| 石泉县| 临邑县| 满洲里市| 洞头县| 乌什县| 巴彦县| 玉林市| 龙陵县| 通渭县| 麻江县| 穆棱市| 大姚县| 武乡县| 历史| 蒙阴县| 洪洞县| 丰镇市| 苍山县| 新田县| 凌云县| 龙岩市| 阳春市| 应城市| 富顺县| 沙坪坝区| 莎车县| 普安县| 莆田市| 济南市| 宁波市| 朔州市| 益阳市| 嘉兴市| 馆陶县| 祁东县| 尖扎县| 文登市|