如何将数据从BroadcastReceiver从第二个活动传递到另一个活动中的函数

时间:2018-12-14 14:38:36

标签: android

我需要将数据从BroadcastReceiver从第二个活动发送到另一个活动中的函数,但是我不知道该怎么做,有人可以告诉我该怎么做。

这是第二项活动的BroadcastReceiver:

public class UsbService extends Service implements SerialPortCallback {    

private boolean statusUSB = false;

private final BroadcastReceiver usbReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context arg0, Intent arg1) {
        if (arg1.getAction().equals(ACTION_USB_ATTACHED)) {
            boolean ret = builder.openSerialPorts(context, BAUD_RATE,
                    UsbSerialInterface.DATA_BITS_8,
                    UsbSerialInterface.STOP_BITS_1,
                    UsbSerialInterface.PARITY_NONE,
                    UsbSerialInterface.FLOW_CONTROL_OFF);
            if(ret){
                Toast.makeText(context, "Usb Conectado!", Toast.LENGTH_SHORT).show();
                statusUSB = true;
            }else{
                statusUSB = false;
            }

        } else if (arg1.getAction().equals(ACTION_USB_DETACHED)) {

            UsbDevice usbDevice = arg1.getParcelableExtra(UsbManager.EXTRA_DEVICE);
            boolean ret = builder.disconnectDevice(usbDevice);
            Toast.makeText(context, "Usb Desonectado!", Toast.LENGTH_SHORT).show();

            Intent intent = new Intent(ACTION_USB_DISCONNECTED);
            arg0.sendBroadcast(intent);
        }
    }
};
.
.
.

我需要发送的数据是布尔状态USB

这是第一个活动的功能,我需要对其进行评估:

public class MainActivity extends AppCompatActivity {
.
.
.
    public boolean checkUSB() {

    if (statusUSB == true){
        Toasty.success(this, "USB Conectado!",Toast.LENGTH_SHORT, true).show();
     }
    if (statusUSB == false){
        Toasty.error(this, "USB Desconectado!",Toast.LENGTH_SHORT, true).show();
    }

1 个答案:

答案 0 :(得分:1)

您描述的内容不是Android开发人员模型支持的内容。每个Activity都独立于其生命周期(请参见here。)您不会直接从另一个Activity调用Activity中的方法。如果您使用第二个Activity来收集信息,然后需要将其报告给第一个Activity,请考虑启动第二个Activity for result。然后,您的第二个Activity只需设置结果,然后调用finish()