1. 程式人生 > >Activity在onStop後到底處於什麼狀態

Activity在onStop後到底處於什麼狀態

               

首先這是篇短文,重點是討論onStop後的狀態,沒有例子。

大家都知道Activity的生命週期,

onCreate 、onStart 、onResume 、onPause 、onStop 、onDestroy

一、那麼onStop是怎麼產生的呢?

Activity在不可見的時候,如被其他Activity完全覆蓋,此Activity就處於onStop狀態。

二、那麼接下來會發生什麼事情呢?

有兩種情況:1、Activity再次啟用,呼叫onRestart,復活。

2、Activity被銷燬,呼叫onDestroy。銷燬有兩種原因:主動呼叫finish()或被系統回收。 

那麼在一和二之間,Activity到底處於一個什麼

狀態?是否可用?

這段時間是Activity的後臺時間,它是不可見的,但它是可用的。

我當時就是因為看到“stop”,就主觀說起是停止狀態,是不可用的,實踐證明我是錯的。

比如說此時還可以用來處理廣播發來的訊息等等。

但是這段時間又是一段不安全時間,系統根據記憶體狀況隨時都有可能將其回收。

好的做法是,在onPause狀態就把重要的資料存起來,以備在onResume時恢復。

因為在此activity被遮住之前,onPause()就被呼叫了。然而需要注意的是,這裡面處理事務的時間不宜過長。

具體參見activity的google API文件。