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

看板AndroidDev作者 (skill)時間11年前 (2014/10/24 10:09), 11年前編輯推噓2(2016)
留言18則, 7人參與, 最新討論串1/1
想請問各位大大 我的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://www.ptt.cc/bbs/AndroidDev/M.1414116552.A.A62.html

10/24 11:18, , 1F
如果是程式初始化的動作不希望activity再做一次
10/24 11:18, 1F

10/24 11:19, , 2F
你可以考慮把初始化的事情在Application類別實作
10/24 11:19, 2F
是想知道0個activity到1個activity的狀態 因為 0 activity不代表application已經死了,所以這方法不適合我的情境。 QQ

10/24 11:22, , 3F
或是有一個計數的變數,在每次application onCreate()
10/24 11:22, 3F

10/24 11:23, , 4F
設定初始值=0,Activity onCreate()的時候+1
10/24 11:23, 4F

10/24 11:24, , 5F
這樣你就可以透過這個變數知道是不是第一個activity
10/24 11:24, 5F
這樣的話會造成每個activity在onCreate +1 onDestroy -1 然後在 onCreate時作判斷現在的值 可是這樣就變成每個Activity都要作這件事情 冏,這方法可能用繼承會好一點 謝謝大大的幫助! ※ 編輯: issuemylove (118.163.3.187), 10/24/2014 12:11:51

10/24 13:47, , 6F
就建一個class裡面有static member用來存變數不就好了
10/24 13:47, 6F

10/24 18:18, , 7F
問題是這樣每寫一個activity都要在onCreate onDestro
10/24 18:18, 7F

10/24 18:18, , 8F
y 那邊都要寫 感覺在專案裡面會有很多東西要改 冏
10/24 18:18, 8F

10/24 20:19, , 9F
最好不要有這樣的設計,你想這麼做的理由是什麼?能
10/24 20:19, 9F

10/24 20:19, , 10F
不能有其他替代的解決方案?
10/24 20:19, 10F

10/25 14:02, , 11F
在背景被gc的時候 會call onSaveInstance 來保存state
10/25 14:02, 11F

10/25 14:03, , 12F
在重新onCreate 時你可以在去 讀取之前的state
10/25 14:03, 12F

10/25 21:11, , 13F
不知道寫一個繼承application的class ,在裡面做你
10/25 21:11, 13F

10/25 21:11, , 14F
要做的軸,這樣是不是你想要的?
10/25 21:11, 14F

10/27 17:25, , 15F
QQ 其實上面的方法幾乎都可行,但如freesa大講的
10/27 17:25, 15F

10/27 17:25, , 16F
程式的結構會潛藏危機
10/27 17:25, 16F

10/30 01:01, , 17F
寫一個BaseActivity讓專案內所有Activity繼承?
10/30 01:01, 17F

10/30 01:03, , 18F
若是AB執行順序固定,用forResult應該能保留A?
10/30 01:03, 18F
文章代碼(AID): #1KIRJ8fY (AndroidDev)