2012-09-20 26 views
1

在我的應用程序中,我使用簡單的方式發送廣播並接收它們。發送廣播和接收的更多方式

Intent in = new Intent("UPDATE_SOMETHING"); 
sendBroadcast(in); 

在我接收我只是檢查,如果(intent.getAction()。等於(「UPDATE_SOMETHING」)),當然在AndroidManifest的意圖過濾器,我把這樣應用程序知道該接收器應該接受它。這種方法對我來說工作正常,而且我發現這可以通過其他方式完成。

Intent in = new Intent(getApplicationContext(), Receiver.class); 
in.setAction("UPDATE_SOMETHING"); 
sendBroadcast(in); 

在這個例子中我並不需要把在AndroidManifest的行動,我可以以同樣的方式與上述檢查它的接收器(如果(intent.get ...))

也有第三條路

Intent in = new Intent(); 
in.setAction("UPDATE_SOMETHING"); 
sendBroadcast(in); 

而且puting在AndroidManifest一個動作......

我的問題是,這三種方式是最好用?以及是否有這之間的任何差別方法? (除了在編寫代碼):)

回答

1

第一和第三種方法是相同的。您將動作傳遞給意圖的唯一區別(通過構造函數或方法)。這兩種方法都會將廣播發送到偵聽UPDATE_SOMETHING動作的所有註冊廣播接收器。

在第二種方法中,您明確向您的Receiver類發送廣播。所以沒有其他廣播接收機會看到/接收它。