我收到一條錯誤消息,說明在調用FragmentManager時活動已經被銷燬。是否存在FragmentManager在進行交易調用之前可以執行的檢查,或者是否需要獲取該活動並檢查它是否爲空或!activity.isFinishing()?我還需要做其他檢查嗎?這是我以前做的事,但不知道這仍然是做到這一點的方法嗎?只是好奇片段管理員爲什麼不知道活動的狀態......我需要涵蓋活動即將被銷燬的情況以及它已經被銷燬的情況()。無論哪種情況,我都不想承諾交易。Is(!activity.isFinishing())是否可以檢查該活動是否已被銷燬? isFinishing()與isDestoryed()
更新:對於API 17+ activity.isDestroyed()可用。對於API < 17仍然需要確認activity.isFinishing()是否會檢測到已銷燬的活動,或者是否有其他方法來執行此操作?
if ((activity != null) && !activity.isFinishing()) {
fm.FragmentTransaction fragmentTransaction =
fm.beginTransaction().replace(R.id.fragment_container, mFeedFragment).commitAllowingStatelessLoss();
}
但是,這是必要的,如果isFinishing()也被稱爲()? – gitsensible
@gitsensible檢查畝更新ans –
我認爲isFinishing()可能會返回true,一旦它已被銷燬。你怎麼看? – gitsensible