2014-10-08 82 views
3

我在我的應用程序中有一個BroadcastReceiver和一個服務。我正在從活動的服務中收到行動信息。我必須與接收器動態註冊這個動作。我在AndroidManifest.xml中定義了一些動作,但是這個動作必須動態定義。有人可以幫助我嗎?廣播接收器的動作(intent-filter)的Dynmaic註冊

謝謝。

P.S. AndroidManifest.xml中的示例接收器標記。 BOOT_COMPLETED是我所指的行爲之一。我在這項服務中收到這些信息。

<receiver android:name="com.test.TestReceiver"> 
<intent-filter> 
    <action android:name="android.intent.action.BOOT_COMPLETED" /> 
</intent-filter> 
</receiver> 

回答

0

您可以使用此:

IntentFilter intentFilter = new IntentFilter("android.intent.action.BOOT_COMPLETED"); 
YourReceiver receiver = new YourReceiver(); 
LocalBroadcastManager mBroadcastMgr = LocalBroadcastManager 
       .getInstance(getApplicationContext()); 
mBroadcastMgr.registerReceiver(receiver, intentFilter); 
+0

謝謝,Misagh。如果接收器已經在AndroidManifest.xml中註冊,我可以在LocalBroadcastManager中使用registerReceiver()嗎? – user4122421 2014-10-08 22:41:58

+0

我不確定。但爲什麼你想這樣做? – 2014-10-09 11:24:33

+1

我只是想了解細節。在你提到的例子中,「YourReceiver」也出現在AndroidManifest.xml中。或者,它只是另一個已定義的類,但不存在於manifest.xml中 – user4122421 2014-10-09 15:29:10