2013年2月19日 星期二

[Android]再談Activity的實務應用經驗

這段時間 有個工作需求(沒錯,是這一陣子的一個工作需求)
需要show一個dialog 這個用AlertDialog 或 進階應用-插入圖片 就可以達到
問題是 改寫的程式 在onResume 新增了一個view
當原始程式 呼叫toast 時 不會去呼叫到 onResume
當然裡面的view也不會被叫出來

但當我把toast改寫成 alertdialog時 onResume 的view被叫出來了!!!
無奈網路上找不太到任何相關 alertdialog 之生命週期的資料

於是基於沒人帶我練功 只好自己用土法煉鋼來實驗的精神
找到了解決方法
程式呼叫進來
用intent傳到另一個activity去執行alertdialog
似乎不會呼叫到onResume,因為view不會被叫出來

今天在網路上找資料 看到一篇 摩刻部落 Android開發筆記-Activity的生命週期

看到一句耐人尋味(也讓我驚為天人)的話 ,讓我忍不住想記錄下來(也因此寫了這篇):
onResume()
將activity移到堆疊的最上層,讓使用者可以和activity互動。
這個我們都知道 重點是下面這句:

onPause()
當有簡訊、電話、Toast、AlertDialog等另外一個activity進行時,進入onPause()的狀態,停止對螢幕的存取能力。如果畫面沒有轉移,則回到onResume();若畫面轉移到新的activity時,則進入onStop()。


如果畫面沒有轉移就會執行 onResume .
換句話說,想要不讓程式執行到onResume的話,用intent 啟動另一個activity 把畫面轉移似乎是一個可行的方法,也間接驗證了我之前的實作.





沒有留言:

張貼留言