編輯:Android開發實例
Android官方文檔裡對Activity的生命周期有比較詳盡的描述,但由於資源回收機制帶來不確定性,我們的程序運行結果常常與預期的不符,而調試這類問題又十分消耗時間和精力。解決的根本辦法還是要理解透Activity的生命周期及相關內容,這篇帖子著重介紹Activity生命周期本身,之後會用一兩篇帖子來介紹如何處理異常的狀態變化。
下圖是官方文檔裡的Activity生命周期圖,其中彩色標出的四個框是Activity的四種狀態,當Activity的狀態改變時會觸發一個或多個onXXX()方法。
當Acitivity第一次被創建時觸發,一般在這裡要做的事情包括創建視圖(setContentView())、向視圖填充必要的數據等等。
這個我比較少用到,按文檔上的介紹,如果Activity之前被stop過,那麼下一次onStart()方法之前會先觸發這個方法。
只要Activity從不可見變成可見,就會觸發到這個方法,但被AlertDialog遮擋/顯示的情況不算在內。
當Activity來到最上層的時候,也就是開始與用戶直接交互時,觸發這個方法。例如本來Activity被一個AlertDialog遮擋,當這個AlertDialog消失時,onResume()方法就被觸發。
和onResume()的觸發條件剛好相反,如果Activity本來在最上層,當它要讓出最上層的位置時會觸發這個方法。onPause()和onResume()是被觸發最頻繁的兩個方法,所以在這裡不應該執行過於消耗資源的方法。
當有其他Activity覆蓋了當前Activity時,不論另一個Activity是新開始的還是從下層移至最上層的,當前Activity的onStop()方法都會被觸發。
Activity生命周期的終點。有兩種情況會導致它被觸發:1)執行了Activity#finish()方法;2)Android系統由於資源不足等原因決定殺掉Activity所在進程。通過isFinishing()方法可以判斷出是哪種情況。在這個方法裡,我們一般要做的事情是釋放Activity占有的資源,例如後台正在進行的下載線程等等。
最後,舉個實際例子來說明,假設你有一個“首頁Activity”和一個“編輯頁Activity”。
參考資料:
Activity Lifecycle
Simplest Android Activity Lifecycle
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放
不知道大家是否用過天天動聽,對於它界面上的半透明Menu效果,筆者感覺非常漂亮
大家在進行其他語言的編程時應該都見過甚至用過標簽組件,Android開發中也經
本文實例講述了Android編程實現QQ表情的發送和接收。分享給大家供大家參考,具體如下: 在自己做一個聊天應用練習的時候,需要用到表情,於是就想著模仿一下QQ表