unregistering receivers

pull/177/head
Felipe Herranz 2018-11-18 13:06:00 +01:00
rodzic 35fad70a3d
commit 8265c8d73f
2 zmienionych plików z 13 dodań i 2 usunięć

Wyświetl plik

@ -157,6 +157,8 @@ public class UsbService extends Service implements SerialPortCallback {
@Override
public void onDestroy() {
super.onDestroy();
if(builder != null)
builder.unregisterListeners(context);
UsbService.SERVICE_CONNECTED = false;
}
@ -232,8 +234,10 @@ public class UsbService extends Service implements SerialPortCallback {
public void handleMessage(Message msg) {
int port = msg.arg1;
byte[] data = (byte[]) msg.obj;
UsbSerialDevice serialDevice = serialPorts.get(port);
serialDevice.getOutputStream().write(data);
if(port <= serialPorts.size()-1) {
UsbSerialDevice serialDevice = serialPorts.get(port);
serialDevice.getOutputStream().write(data);
}
}
};
Looper.loop();

Wyświetl plik

@ -146,6 +146,13 @@ public class SerialPortBuilder {
return false;
}
public void unregisterListeners(Context context){
if(broadcastRegistered){
context.unregisterReceiver(usbReceiver);
broadcastRegistered = false;
}
}
private PendingUsbPermission createUsbPermission(Context context, UsbDeviceStatus usbDeviceStatus){
PendingIntent mPendingIntent = PendingIntent.getBroadcast(context, 0, new Intent(ACTION_USB_PERMISSION), 0);
PendingUsbPermission pendingUsbPermission = new PendingUsbPermission();