Standard Injection
为方便起见,Roboguice 针对 Android 平台常用的一些对象或服务提供了“标准注入”支持。比如无需使用 (SensorManager) getSystemService(SENSOR_SERVICE) 来取得 SensorManger 实例,而直接使用 @Inject 标记
@Inject SensorManager sensorManager;
Roboguice 自动为 sensorManager 注入所需 SensorManger 对象, Roboguice 支持的标准注入有如下:
- @Inject ContentResolver contentResolver;
- @Inject AssetManager assetManager;
- @Inject Resources resources;
- @Inject LocationManager locationManager;
- @Inject WindowManager windowManager;
- @Inject LayoutInflater layoutInflater;
- @Inject ActivityManager activityManager;
- @Inject PowerManager powerManager;
- @Inject AlarmManager alarmManager;
- @Inject NotificationManager notificationManager;
- @Inject KeyguardManager keyguardManager;
- @Inject SearchManager searchManager;
- @Inject Vibrator vibrator;
- @Inject ConnectivityManager connectivityManager;
- @Inject WifiManager wifiManager;
- @Inject InputMethodManager inputMethodManager;
- @Inject SensorManager sensorManager;
我们使用 SensorManager 为例,说明一下 Standard Injection 的用法,本例基于 Android ApiDemos 示例解析(90):OS->Sensors 。
修改
private SensorManager mSensorManager;
为
private @Inject
SensorManager mSensorManager;
去掉 onCreate 中的
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
运行实例,可以看出不用使用 getSystemService,Roboguice 自动为 mSensorManager 赋了值。
上一篇: Inject Context
下一篇: Inject Extra