【九】注入架構RoboGuice使用:(Your First Injected Service and BroadcastReceiver),roboguiceinjected
上一篇我們簡單的介紹了一下RoboGuice的使用(【八】注入架構RoboGuice使用:(Your First Injected Fragment)),今天我們來看下服務(Service)和廣播接受者(BroadCast Receiver)的注入
(一):和Robo*Activities一樣,RoboServices和RoboIntentServices通過RoboGuice也自動接受注入。
下面是一個使用RoboGuice注入的android service的例子:
public class MyService extends RoboService { @Inject ComputeFooModule computeFooModule; public void onCreate() { super.onCreate(); //All injections are available from here : computeFooModule.setUp(); } public int onStartCommand(Intent intent, int flags, int startId) { computeFooModule.computeFoo(); return super.onStartCommand(); }} RoboGuice也為IntentService提供了注入基類,RoboIntentService。
(二):廣播接收者注入
通過RoboGuice ,android BroadCast Receiver也能接受注入。
public class MyBroadcastReceiver extends BroadcastReceiver { @Inject ComputeFooModule computeFooModule; protected void handleReceive(Context context, Intent intent) { //All injections are available from here : computeFooModule.setUp().computeFoo(); ... }} (三):【注意】在RoboGuice中,所有廣播接受者可以在整個應用程式範圍內接受注入,這就是即使是ContextSingleton在這裡也會轉成Singleton。