我想在特定類型X的所有活動都關閉時執行一些操作。第一個想法是有一些全局計數器,每當活動X關閉時遞減,並且一旦計數器爲0,就執行一些操作。假設這個過程可以被殺死,那麼計數器必須被持續。但還有一個問題仍然存在 - 想象活動X可能會崩潰(由於代碼中存在一些錯誤),在這種情況下,我不會減少計數器。如何知道某個類型X的最後一個活動是關閉的?
任何想法如何以穩健的方式實現它?
我想在特定類型X的所有活動都關閉時執行一些操作。第一個想法是有一些全局計數器,每當活動X關閉時遞減,並且一旦計數器爲0,就執行一些操作。假設這個過程可以被殺死,那麼計數器必須被持續。但還有一個問題仍然存在 - 想象活動X可能會崩潰(由於代碼中存在一些錯誤),在這種情況下,我不會減少計數器。如何知道某個類型X的最後一個活動是關閉的?
任何想法如何以穩健的方式實現它?
我不確定'closed'是什麼意思,但您應該可以使用Activity Lifecycle回調來完成您所要求的內容。
有以下頁面上的圖,顯示了活動的生命週期是如何實現的: http://developer.android.com/reference/android/app/Activity.html
正如你所說,你可以對此有一個全局計數器。
也許它的好位置在Application類中?
或者你只要將你的計數器保存在一個文件中,並在每次啓動應用程序時重置它(在第一個活動中)。
您也可以嘗試將其保存在共享首選項中。
但是仍然存在崩潰問題。我只是一個想法。有用於崩潰記錄的ACRA庫。看看它,它們是如何捕捉崩潰的。
所以你可以寫一個減少計數器的方法。並從onDestroy()調用它或發生崩潰。
我不是很確定,但不會每次都打onDestroy?當一個活動崩潰? – Tima 2011-03-16 13:28:40
由於Mur說使用onDestroy – Blundell 2011-03-16 13:36:12
如果活動崩潰,onDestroy將不會被調用。 – alex2k8 2011-03-16 13:59:10