startActivityForResult無法回調

Android中常常需要用到startActivityForResult()方法來獲得Activity回執信息的場景。但有時不注意就會導致onActivityResult()不被調用,或者調用時機錯誤。以下總結開發中遇到過的兩種情況:

Fragment

在fragment作爲調用者使用時需要注意,Fragment有自己的一套API而不是通過其父類API進行調用的,因此調用自己的API時需要重寫自己的回調方法。使用getActivity.startActivityForResult會回調到附屬Activity的回調方法中。

NewTask

有時候我們在啓動Activity時會用到NewTask的啓動模式,因爲啓動是在新的棧中,因此無法跨棧進行result回調。採用這種方式時onActivityResult會在跳轉過去後立即調用,而不是在返回時調用。如果需要使用startActvitiyForResult主要不是使用新棧模式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章