作者issuemylove (skill)
看板AndroidDev
標題[問題] 如何判斷是第一個開啟的Activity
時間Fri Oct 24 10:09:10 2014
想請問各位大大
我的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開始作
(應該是被系統殺掉)
不知有甚麼好方法可以解決呢?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.3.187
※ 文章網址: http://webptt.com/m.aspx?n=bbs/AndroidDev/M.1414116552.A.A62.html
1F:→ Deltaguita: 如果是程式初始化的動作不希望activity再做一次 10/24 11:18
2F:→ Deltaguita: 你可以考慮把初始化的事情在Application類別實作 10/24 11:19
是想知道0個activity到1個activity的狀態
因為 0 activity不代表application已經死了,所以這方法不適合我的情境。 QQ
3F:→ Deltaguita: 或是有一個計數的變數,在每次application onCreate() 10/24 11:22
4F:→ Deltaguita: 設定初始值=0,Activity onCreate()的時候+1 10/24 11:23
5F:→ Deltaguita: 這樣你就可以透過這個變數知道是不是第一個activity 10/24 11:24
這樣的話會造成每個activity在onCreate +1 onDestroy -1
然後在 onCreate時作判斷現在的值
可是這樣就變成每個Activity都要作這件事情 冏,這方法可能用繼承會好一點
謝謝大大的幫助!
※ 編輯: issuemylove (118.163.3.187), 10/24/2014 12:11:51
6F:→ ckvir: 就建一個class裡面有static member用來存變數不就好了 10/24 13:47
7F:→ issuemylove: 問題是這樣每寫一個activity都要在onCreate onDestro 10/24 18:18
8F:→ issuemylove: y 那邊都要寫 感覺在專案裡面會有很多東西要改 冏 10/24 18:18
9F:→ freesamael: 最好不要有這樣的設計,你想這麼做的理由是什麼?能 10/24 20:19
10F:→ freesamael: 不能有其他替代的解決方案? 10/24 20:19
11F:推 tac0wu: 在背景被gc的時候 會call onSaveInstance 來保存state 10/25 14:02
12F:→ tac0wu: 在重新onCreate 時你可以在去 讀取之前的state 10/25 14:03
13F:推 studentjason: 不知道寫一個繼承application的class ,在裡面做你 10/25 21:11
14F:→ studentjason: 要做的軸,這樣是不是你想要的? 10/25 21:11
15F:→ issuemylove: QQ 其實上面的方法幾乎都可行,但如freesa大講的 10/27 17:25
16F:→ issuemylove: 程式的結構會潛藏危機 10/27 17:25
17F:→ KeySabre: 寫一個BaseActivity讓專案內所有Activity繼承? 10/30 01:01
18F:→ KeySabre: 若是AB執行順序固定,用forResult應該能保留A? 10/30 01:03