BroadcastReceiver物件
有部分資訊,會經由Android系統透過廣播的方式傳送給應用程式或服務。
而BroadcastReceiver就是用來接收這一類訊息的物件
// 加入filter,選擇要receiver的對象
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(mBroadcastReceiver, filter);
// BroadcastReceive(以電池為例)
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
switch (intent.getIntExtra("status", 0)) {
case BatteryManager.BATTERY_STATUS_UNKNOWN:
bat_status = "unknown";
break;
case BatteryManager.BATTERY_STATUS_CHARGING:
bat_status = "charge";
break;
case BatteryManager.BATTERY_STATUS_DISCHARGING:
bat_status = "discharge";
break;
case BatteryManager.BATTERY_STATUS_NOT_CHARGING:
bat_status = "not_charge";
break;
case BatteryManager.BATTERY_STATUS_FULL:
bat_status = "full";
break;
}
bat_level = intent.getIntExtra("level", 0);
}
}
};
// close when leaving
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(mBroadcastReceiver);
}
沒有留言:
張貼留言