為方便起見,Roboguice 針對 Android 平臺常用的一些對象或服務提供了“標準注入”支持。比如無需使用 (SensorManager) getSystemService(SENSOR_SERVICE) 來取得 SensorManger 實例,而直接使用 @Inject 標記
@Inject SensorManager sensorManager;
Roboguice 自動為 sensorManager 注入所需 SensorManger 對象, Roboguice 支持的標準注入有如下:
我們使用 SensorManager 為例,說明一下 Standard Injection 的用法,本例基于 Android ApiDemos 示例解析(90):OS->Sensors 。
修改
private SensorManager mSensorManager;
為
private @Inject
SensorManager mSensorManager;
去掉 onCreate 中的
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
運行實例,可以看出不用使用 getSystemService,Roboguice 自動為 mSensorManager 賦了值。
http://wiki.jikexueyuan.com/project/android-roboguice/images/17.png" alt="" />