[英]What happens after OnPause(), can a listener still be called?
在等待來自Firebase ValueEventListener
回復時,我不想讓我的Activity
在進入OnPause()
時停止使用此代碼進行偵聽:
removeUIListener(OnUpdateUserDoneListener.class, this);
我可以將該行放在onStop()
而不是OnPause()
嗎? 那么當User
返回並且監聽器已經解雇時,一切都會好的嗎?
或者在另一個問題 - OnPause()
之后會發生什么? 聽眾可以這樣:
/**
* Waiting for all done when updating User
*
* @param userItem the user item
*/
@Override
public void OnUpdateUserDone(UserItem userItem) {
isUpdateUserDone = true;
if(isCreateToyDone)
exitSearch();
}
仍然被稱為?
是的,一般來說,Activity只是一個普通的Java對象。 onCreate(), onPause(), onStop()
等只是普通的Java方法。 所有魔法都來自運行活動的系統容器,並在生命周期的特定時刻調用這些方法因此 - onPause不會影響活動狀態,但是當活動放在后台時會調用它。 如果您創建了一些偵聽器對象,只要它與某個GC根ex連接,它就會存在。 生活活動(甚至在后台)或簡單地保存對此監聽器的引用的firebase。
通常,如果要從前台的活動中偵聽事件,則應在onResume()
注冊偵聽器,並在onPause()
注銷它們。 在調用特定生命周期方法時參考上面的鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.