我需要将数据从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();
}
答案 0 :(得分:1)
您描述的内容不是Android开发人员模型支持的内容。每个Activity
都独立于其生命周期(请参见here。)您不会直接从另一个Activity
调用Activity
中的方法。如果您使用第二个Activity
来收集信息,然后需要将其报告给第一个Activity
,请考虑启动第二个Activity
for result。然后,您的第二个Activity
只需设置结果,然后调用finish()
。