android - passing data from BroadcastReceiver to Service -
my goal create method gets data broadcast receiver.
i have service register broadcastreceiver monitor battery plug , unplug. how can data broadcastreceiver ? want receive data in service class:
service:
public class myservice extends service { @override public int onstartcommand(intent intent, int flags, int startid) { registerreceivers(); return start_not_sticky; } @nullable @override public ibinder onbind(intent intent) { return null; } private synchronized void registerreceivers() { intentfilter chargefilter = new intentfilter( intent.action_power_connected ); chargefilter.addaction(intent.action_power_disconnected); registerreceiver(echarge, chargefilter); } }
and receiver:
public class eventcharge extends broadcastreceiver { private static string tag = "event charge"; @override public void onreceive(context context, intent intent) { string action = intent.getaction(); int status = intent.getintextra(batterymanager.extra_status, -1); boolean ischarging = status == batterymanager.battery_status_charging || status == batterymanager.battery_status_full; int chargeplug = intent.getintextra(batterymanager.extra_plugged, -1); boolean usbcharge = chargeplug == batterymanager.battery_plugged_usb; boolean accharge = chargeplug == batterymanager.battery_plugged_ac; string messagge = "ps: " + ((action == intent.action_power_connected) ? "c" : "d") + " [ usb: " + usbcharge + " ac: " + accharge + " ]"; log.e(tag, messagge ); } }
is there solution?
in receiver, can put params bundle, , use startservice(intent) containing bundle call target service. in service, parse bundle , params.
Comments
Post a Comment