2012-08-15 47 views

回答

1

這一切都取決於你。對於intent-filter的不同組,您可以有多個BroadcastReceiver,或者使用單個廣播接收機處理所有意向過濾器。

通常最好根據一組意圖過濾器來定義不同的接收器,這些過濾器應該爲相關的任務組提供功能。

就像我說的,它完全取決於你。如果你有一大套意圖過濾器,並且你希望你的代碼得到正確的處理(根據它所執行的類似的任務分類),那麼去多個接收器。否則,它容易和合乎邏輯地處理單個接收器中的幾個濾波器

此外,應用程序的性能不會受到阻礙,因爲它取決於接收器中的任務執行情況,而不是接收器或過濾器的數量。

提示:嘗試引進Threads無論你預計將進行一些繁重的:)

+0

謝謝Waqas ~~這是我的答案。 – AmyWuGo 2012-08-15 09:30:35

0

您可以在應用程序上聲明儘可能多的BroadcastReceivers。它會影響你收到的每一個廣播開始做一百萬次長時間的後臺操作。

但你計劃的應用程序真的需要所有這些接收器嗎?

有一些API以編程方式啓用/禁用您聲明的接收器,也可能是一個不錯的選擇。

編輯: 我想如果你自己做一點測試會容易一些。

  • 在您的Eclipse上,創建一個新的Android項目。
  • 創建一個擴展BroadcastReceiver的類。
  • 保存並關閉它。
  • 現在進入清單,應用程序選項卡,應用程序節點,添加按鈕,添加接收器。
  • 等待Eclipse搜索您的應用程序並找到您剛創建的應用程序。
  • 接收器內部放置了一個新的意圖過濾器。不需要名字或任何東西。
  • 裏面的過濾器把一個行動。
  • 在操作名稱中,選中下拉菜單。

這些都是BroadcastReceiver可能收到的所有不同操作。所以它只是簡化和組織一些應用程序來實現多個接收器,一個接收器用於每種不同類型的操作。或者,也許它只會收到兩個非常類似的動作,並且在一個接收器中完成它更簡單。

它有道理嗎?

+0

謝謝Bundius.I竊取不明白爲什麼人們在他們的應用程序中使用更多的BroadcastReceiver? – AmyWuGo 2012-08-15 09:28:29

+0

Budius,謝謝! – AmyWuGo 2012-08-20 05:33:22

1

它認爲類應該有一個責任。因此,如果您的BroadcastReceiver同時處理SMSCALL意圖,則考慮擁有多個接收器。

相關問題