我正在使用新的Android構建系統創建應用程序,並使用LocalBroadcastManager
將IntentService
的通知發送回Activity
。LocalBroadcastManager是否依賴應用程序包名稱?
我已將以下產品風味定義爲構建3個獨立應用程序的一部分;
productFlavours {
london {
packageName 'com.example.lo'
}
dubai {
packageName 'com.example.du'
}
}
當我使用這些產品口味之一構建應用程序時,我沒有通過管理器獲得任何廣播。我已經確認服務和活動都在同一個進程中運行。
根據我的活動的Activity#onCreate
方法的要求,廣播接收機被綁定,但沒有收到任何事件。我也通過打印出活動和服務的進程ID進行了確認,並且都報告說這是相同的進程,所以這不成問題。
作爲一項測試,我刪除了產品口味,並使用應用清單文件中定義的單個軟件包名稱構建應用程序,現在廣播管理器似乎按預期運行。關於我發送的意圖,我只是設置了行動。
我需要設置其他任何東西嗎?
你確定你註冊的接收器有正確的意圖 - 過濾器?也許顯示一些代碼在哪裏發生 – waqaslam
是檢查並雙重檢查意圖過濾器。我在onCreate方法上註冊它,並在onDestroy中取消註冊。 –
您是否使用相同的上下文進行觸發和接收廣播?因爲LocalBroadcasts綁定到上下文。 – waqaslam