2013-10-28 41 views
0

我們的大部分活動都訪問用戶特定的模型。所有這些活動都繼承自ModelActivity基類,該類提供getModel()調用。當其中一個活動檢測到用戶已註銷(通過AccountManager回調)時,它會保留其現有模型,但準備通過使用FLAG_ACTIVITY_CLEAR_TOP啓動其意圖而退出到根活動(不是特定於用戶的活動)。攔截應用程序恢復時的活動創建

但是,如果用戶在應用程序未運行時刪除帳戶,則在活動恢復時會遇到麻煩。現在,活動需要處理的不是模型,這會使代碼更加複雜且容易出錯。

理想情況下,我們會在創建活動之前攔截應用程序還原過程。然後,我們將檢查我們是否有帳戶和模型,並且如果不清除已保存的活動堆棧,並從我們的根活動重新啓動,而不是最後保存的活動。但據我所知,我們可以運行代碼的第一個地方是在活動的onCreate回調中。

當應用程序從後臺保存恢復時,但在創建保存的活動之前,有沒有辦法運行一些代碼?

回答

0

我對此並不完全確定,但從未實施過,但可以延長Application.ActivityLifecycleCallbacks並註冊您的課程registerActivityLifecycleCallbacks

這些回調在Activity回調之前被調用。

0

我建議你實施一個Service,它將在你的活動中被監視。如果你創建一個新的Activity你總是知道,如果恢復你的Activity或不