android eventbus fragment,Android EventBus在Fragment中不起作用的解決方法

一、AndroidEventBus。

二、問題出現情形。

AndroidEventBus在Fragment中注冊,由其他地方向Fragment中post事件。

三、問題出現原因。

由其他地方向Fragment post事件的時候,Fragment還未初始化,也即AndroidEventBus在此Fragment中還未注冊,所以收不到事件。

四、問題解決辦法。

1.在程序中想辦法先初始化此Fragment,比如app中首頁四個Tab分頁,由第一個分頁向第三個分頁post事件時,如果剛進入app且沒有操作的情況下,第三個Fragment一般都是未初始化的,這種情況可以在進入默認第一個分頁時先進入第三個分頁,然后立馬再切換到第一個分頁,這樣用戶是看不出切換過程的,而第三個Fragment也初始化了。示例代碼如下:

setTabSelection(2);//先選擇第三個Tab分頁

setTabSelection(0);//然后立馬切換到默認的第一個Tab分頁在這之后在post事件,應該就沒問題了。

2.采用延時post的形式。即先切換到要post事件的Fragment,等待幾十毫秒后再post事件,這樣既可解決未初始化問題。

五、特殊情況

在這樣有個特殊情況,如果在Fragment中使用了TabLayout,則只能采用延時的方式。因為TabLayout在Fragment中初始化標題會有個延時情況,如果采用第一種方式,則不會顯示標題。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值