A normal broadcast
You can can retrieve that data through the return value of
In all other ways, this behaves the same as
The Android system uses sticky broadcast for certain system information. For example the battery status is send as sticky
Sticky Broadcast Intents typically require special permissions.
Intent
is not available anymore after is was send
and processed by the
system. If you use the
sendStickyBroadcast(Intent)
method, the
Intent
is sticky, meaning the
Intent
you are sending stays around after the
broadcast is complete.You can can retrieve that data through the return value of
registerReceiver(BroadcastReceiver,
IntentFilter)
. This works also for a null
BroadcastReceiver
.In all other ways, this behaves the same as
sendBroadcast(Intent)
.The Android system uses sticky broadcast for certain system information. For example the battery status is send as sticky
Intent
and
can get received at any time. The following example demonstrates
that.// Register for the battery changed event IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); / Intent is sticky so using null as receiver works fine // return value contains the status Intent batteryStatus = this.registerReceiver(null, filter); // Are we charging / charged? int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL; boolean isFull = status == BatteryManager.BATTERY_STATUS_FULL; // How are we charging? int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
Sticky Broadcast Intents typically require special permissions.