實現聊天功能模塊,服務器推送一條聊天消息發送到我們的app上,但是不能直接將數據傳遞到當前的activity上,因爲該BroadcastReceiver不是當前的activity註冊的,是app啓動時註冊的,看山去這個推送廣播與聊天activity毫無關聯性,也就無法互相傳遞數據。那麼我們該怎麼實現這個功能呢?
實現該功能的方法就是再寫一個BroadcastReceiver的子類,讓聊天activity去註冊這個子類,並且在子類中添加接口,讓activity去實現這個接口,然後推送廣播發送帶有消息數據的廣播發送到這個子類上,子類通過activity傳進來的接口回調,activity就獲得了這條消息數據。
這樣做產生了一個問題,推送sendBroadcast後調用onReceive().acitivty註冊了一次Broadcast,這樣就會調用兩次onReceive()