Android 课堂与主要活动的沟通

Android 课堂与主要活动的沟通,android,class,broadcastreceiver,communication,main-activity,Android,Class,Broadcastreceiver,Communication,Main Activity,我是Android新手,希望你能原谅我的无知 我做了一个活动,用我的电话控制一些蓝牙设备,现在一切正常,我想从这个活动中生成一个新类,一个处理所有蓝牙通信的类 我有一些问题: 第一:在我的活动中,我使用了一个广播接收器来收听蓝牙适配器的一些动作,如STATE_ON,BOND_BOND。。。使用这些操作,我更新我的视图,调用一些方法等等 那么,有可能在我的课堂上继续收听这个广播接收器,然后将更改发送到我的主要活动以更新视图等等 第二:我真的需要将蓝牙课程中的信息发送到我的主要活动中,我从设备中读取

我是Android新手,希望你能原谅我的无知

我做了一个活动,用我的电话控制一些蓝牙设备,现在一切正常,我想从这个活动中生成一个新类,一个处理所有蓝牙通信的类

我有一些问题:

第一:在我的活动中,我使用了一个广播接收器来收听蓝牙适配器的一些动作,如STATE_ON,BOND_BOND。。。使用这些操作,我更新我的视图,调用一些方法等等

那么,有可能在我的课堂上继续收听这个广播接收器,然后将更改发送到我的主要活动以更新视图等等

第二:我真的需要将蓝牙课程中的信息发送到我的主要活动中,我从设备中读取的信息,广播接收器中的信息。。。那么,在类和主要活动之间传递信息的最佳方式是什么


非常感谢您的帮助:

您的BroadcastReceive的onReceive方法是从主线程调用的: 此方法始终在其进程的主线程内调用

这意味着您可以从onReceive方法更新ui。您只需使用一个本地类,如下所示:

BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // update the ui
    }
};
以编程方式注册此接收器,而不是在清单中定义它,这样您就可以开始了:

Context.registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter)

重复的,因此我无法收听广播接收器,我正在使用它获取bluetooth类中bluetooth适配器的不同状态?您可以,但您必须从bluetooth类中的接收器向上述广播接收器发送广播。您可以使用LocalBroadcastManager更高效、更安全地发送广播。