[問題] 如何判斷是第一個開啟的Activity

作者: issuemylove (NotLove)   2014-10-24 10:09:10
想請問各位大大
我的app在一剛開始要如何判定
從0個 activity 的狀態變成 1個Activity
但不等於完整的App被關掉再開啟,因為有時候0個activity不代表App不在記憶體中了
另外,由於開啟activity不一定是透過 手壓App icon出現 (intent action: MAIN)
所以無法從 intent下手
主要是因為我想要一個activity A在 onCreate作一些事情
但是activity A 跳到別的activity B 的時候
再按 back 鍵回來,原先的activity A就有時候會從 onCreate開始作
(應該是被系統殺掉)
不知有甚麼好方法可以解決呢?
謝謝!
作者: Deltaguita (貝里斯)   2014-10-24 11:18:00
如果是程式初始化的動作不希望activity再做一次你可以考慮把初始化的事情在Application類別實作或是有一個計數的變數,在每次application onCreate()設定初始值=0,Activity onCreate()的時候+1這樣你就可以透過這個變數知道是不是第一個activity
作者: ckvir (ckvir)   2014-10-24 13:47:00
就建一個class裡面有static member用來存變數不就好了
作者: issuemylove (NotLove)   2014-10-24 18:18:00
問題是這樣每寫一個activity都要在onCreate onDestroy 那邊都要寫 感覺在專案裡面會有很多東西要改 冏
作者: freesamael (燒賣)   2014-10-24 20:19:00
最好不要有這樣的設計,你想這麼做的理由是什麼?能不能有其他替代的解決方案?
作者: tac0wu (在BBS中流浪)   2014-10-25 14:02:00
在背景被gc的時候 會call onSaveInstance 來保存state在重新onCreate 時你可以在去 讀取之前的state
作者: studentjason (studentjason)   2014-10-25 21:11:00
不知道寫一個繼承application的class ,在裡面做你要做的軸,這樣是不是你想要的?
作者: issuemylove (NotLove)   2014-10-27 17:25:00
QQ 其實上面的方法幾乎都可行,但如freesa大講的程式的結構會潛藏危機
作者: KeySabre (KeySabreur)   2014-10-30 01:01:00
寫一個BaseActivity讓專案內所有Activity繼承?若是AB執行順序固定,用forResult應該能保留A?

Links booklink

Contact Us: admin [ a t ] ucptt.com