首页 > 代码库 > 【九】注入框架RoboGuice使用:(Your First Injected Service and BroadcastReceiver)

【九】注入框架RoboGuice使用:(Your First Injected Service and BroadcastReceiver)

        上一篇我们简单的介绍了一下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。

  

【九】注入框架RoboGuice使用:(Your First Injected Service and BroadcastReceiver)