2025-02-10

為方便起見,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 賦瞭值。

本例下載:http://up.aiwalls.com/2012/0507/20120507110451171.zip
 

 

摘自 引路蜂移動軟件

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *