2013-03-28 25 views
0

我跑進與最近列表中,類似的問題在啓動指定的活動似乎有狀況了一把,其中一個應用程序將被徹底摧毀,但其他一些進程將從最近使用的活動啓動應用程序。由於我的應用程序的狀態是建立在幾個指定的活動上,所以我需要防止這種情況(即onCreate()的null參考)。Android應用程序的初始活動是不是在重新進入應用程序與後退按鈕

,不檢查狀態全是我的onCreate()函數是有辦法只是防止這種情況?

此外,除了發射,最近通話,從其他應用程序的後退按鈕 - 是否有更多的條件,在那裏我有沒有給與意圖明確啓動它清單權限的其他東西可以啓動我的應用程序?

謝謝!

+0

你的清單中的launchMode是什麼?這聽起來像是可以用singleTop作爲launchMode解決,如果我正確理解你的問題。 – jlindenbaum

+0

singleTop不能解決它。如果我的任何活動在啓動應用程序之前啓動,那麼系統處於無效狀態。 – jchristof

回答

0

如果我正確理解了這一點,那麼您在活動B中的初始化依賴於活動A已通過它們。如果活動B首先啓動活動B,而不活動或由A首先啓動,則活動將崩潰。

我能想出的最簡單的解決方案是讓你的活動A(我假設你的主要活動)廣播監聽者爲你想要處理的所有意圖,並基於意圖行動,派遣到適當的兒童活動(B ,C,不管)。這樣A活動就會完成所有初始化,並且您仍然可以啓動適當的活動來處理您想要的初始意圖。

或者,如果您發現您的孩子的活動處於無效狀態,那麼可以將初始化放入您的所有活動延伸的父活動中。這樣,如果活動是全新推出,那麼您應該能夠正確初始化。我不是這個迷,我更喜歡確保我的活動依賴注入適當的數據。

+0

您的第一段是正確的,di最終會解決這個問題(閱讀繼承的遺留Windows代碼移植到Android。)您是否知道第2段中描述的代碼示例構造?我希望看到一個impl來判斷是否符合要求。 – jchristof

相關問題