1

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

我做了一个活动来用我的手机控制一些蓝牙设备,现在一切正常,我想从这个活动中生成一个新类,一个负责所有蓝牙通信的类。

我有一些问题:

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

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

第二:我真的需要从我的蓝牙课程发送信息到我的主要活动,我从我的设备读取的信息,来自广播接收器的信息......所以,这是在课程和主要活动之间传递信息的最佳方式?

好吧,非常感谢您的帮助:)

4

1 回答 1

0

从主线程调用 BroadcastReceiver 的 onReceive() 方法:“始终在其进程的主线程中调用此方法”(http://developer.android.com/reference/android/content/BroadcastReceiver.html# onReceive(android.content.Context,android.content.Intent))。

这意味着您可以从 onReceive() 方法更新您的用户界面。您需要做的就是使用这样的本地类:

BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // update the ui
    }
};

以编程方式注册此接收器(而不是在清单中定义它),您就可以开始了:

Context.registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter)
于 2013-07-31T18:46:12.897 回答