2011-03-16 33 views
0

我想在特定類型X的所有活動都關閉時執行一些操作。第一個想法是有一些全局計數器,每當活動X關閉時遞減,並且一旦計數器爲0,就執行一些操作。假設這個過程可以被殺死,那麼計數器必須被持續。但還有一個問題仍然存在 - 想象活動X可能會崩潰(由於代碼中存在一些錯誤),在這種情況下,我不會減少計數器。如何知道某個類型X的最後一個活動是關閉的?

任何想法如何以穩健的方式實現它?

+0

我不是很確定,但不會每次都打onDestroy?當一個活動崩潰? – Tima 2011-03-16 13:28:40

+0

由於Mur說使用onDestroy – Blundell 2011-03-16 13:36:12

+0

如果活動崩潰,onDestroy將不會被調用。 – alex2k8 2011-03-16 13:59:10

回答

0

我不確定'closed'是什麼意思,但您應該可以使用Activity Lifecycle回調來完成您所要求的內容。

有以下頁面上的圖,顯示了活動的生命週期是如何實現的: http://developer.android.com/reference/android/app/Activity.html

+0

我讀過它,但我不確定如果onDestroy將被調用,如果一個活動崩潰?! – Tima 2011-03-16 13:58:57

+0

當用戶點擊返回按鈕時,活動關閉。這就是我的意思......我瞭解Activity Lifecycle,但無法弄清楚如何以穩健的方式完成我想要的工作。 – alex2k8 2011-03-16 14:01:43

0

正如你所說,你可以對此有一個全局計數器。

也許它的好位置在Application類中?

或者你只要將你的計數器保存在一個文件中,並在每次啓動應用程序時重置它(在第一個活動中)。

您也可以嘗試將其保存在共享首選項中。

但是仍然存在崩潰問題。我只是一個想法。有用於崩潰記錄的ACRA庫。看看它,它們是如何捕捉崩潰的。

所以你可以寫一個減少計數器的方法。並從onDestroy()調用它或發生崩潰。

相關問題