應用程式中所使用的 activity 會被堆疊在 stack 中 (task?)。
畫面上的呈現與 activity 狀態對應如下:
- running <-> visible and get focus
- 正在運行的 activity 便是 stack 最上面的那個 activity,會顯示在畫面上的。
- onPause <-> visible but lost focus
- 在畫面上仍是可見的,但已失去焦點。
- ex: 最上的 activity 畫面獲得焦點且是可看見背景的,那麼原本的 activity ,即使是 onPause 也仍存活著,保持自己的狀態與訊息,仍然與 window manager 保持連接,但有可能會被系統殺掉。
- onStop <-> non-visible and lost focus
- 在畫面上已被其他 activity 完全擋住兒而不可見的,仍保有自己的狀態與資訊,但 window manager 已不再管理其訊息,系統資源不夠時會被殺掉。
當 activity is onPause or onStop,系統則可以清楚它,可能提示 user 是否結束或只是殺掉其 process。
* 當Progress Dialog啟動時Activity模糊化(blur)進入OnPause()狀態, 並以執行緒(Thread)模擬事件進度.
* Reference
- Android activity 堆栈(1) - 嘴嘴的小的日志 - 网易博客
- tsots的Android範例Source: ProgressDialog~ProgressBar~搭配Handler顯示執行進度
沒有留言:
張貼留言