2013-11-21 62 views
0

我有活動A。從A我開始的活動B。 在活動B我使用了大量的內存,有時我得到了OOM。我正在努力修復此問題,但同時我想向用戶展示一些信息。OOM後的活動

OOM在大多數情況下不會崩潰我的應用程序。它只是關閉活動B並恢復A。是否有可能從A中檢測到B未正確完成?

我可以回到A許多其他活動,不僅從B

我不想在Ab_startedb_finished,b_sth)中設置一些標誌。如果存在一個,我希望乾淨而簡單的解決方案。

回答

2

是的,我覺得你可以做以下方式處理這個問題:

1)當你開始一個活動,使用startActivityForResult(意向,requestCode); 這裏傳遞請求碼這是活動B.

2)現在,每當活動B將被關閉,您將在 保護無效onActivityResult得到一個回調(INT requestCode,INT resultCode爲,意圖獨特數據) 此處檢查請求代碼是否類似於您用來啓動活動B的代碼。

3)您的最終問題是要確定活動B是否成功關閉。你可以使用resultCode。將其設置爲成功,當您有意關閉活動時,或者它不會成功。

我希望這有助於!