簡體   English   中英

在OnPause()之后會發生什么,是否仍然可以調用偵聽器?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM